учитывая документ простого текста с несколькими строками как:
c48 7.587 7.39
c49 7.508 7.345983
c50 5.8 7.543
c51 8.37454546 7.34
Я должен добавить некоторую информацию 2 пробелов после конца строки, таким образом, для каждой строки я добрался бы:
c48 7.587 7.39 def
c49 7.508 7.345983 def
c50 5.8 7.543 def
c51 8.37454546 7.34 def
Я должен сделать это для тысяч файлов. Я предполагаю, что это возможно сделать с sed, но не знает как к. Какая-либо подсказка? Вы могли также дать мне, некоторая ссылка с учебным руководством или таблицей для этого случается?
Спасибо
если все ваши файлы находятся в одном каталоге
sed -i.bak 's/$/ def/' *.txt
сделать это рекурсивно (GNU find)
find /path -type f -iname '*.txt' -exec sed -i.bak 's/$/ def/' "{}" +;
вы можете посмотреть здесь введение в sed
Другие способы вы можете использовать,
awk
for file in *
do
awk '{print $0" def"}' $file >temp
mv temp "$file"
done
Bash shell
for file in *
do
while read -r line
do
echo "$line def"
done < $file >temp
mv temp $file
done
for file in ${thousands_of_files} ; do
sed -i ".bak" -e "s/$/ def/" file
done
Ключевым здесь является команда search-and-replace s///
. Здесь мы заменяем конец строки $
на 2 пробела и вашу строку.
Найти документацию по sed можно по адресу http://sed.sourceforge.net/#docs