Вы можете использовать sed:
sed '5s/^/Good morning /' file
добавит Good morning в пятую строку файла.
Если вы хотите заменить содержимое в строке 5 вместо этого скажите:
sed '5s/.*/Good morning/' file
Если вы хотите сохранить изменения в файле на месте, используйте параметр -i:
sed -i '5s/.*/Good morning/' file
sed может обрабатывать более одного файла за раз. Вы можете просто добавить больше имен файлов в конец команды. Вы также можете использовать расширения bash для соответствия определенным файлам:
# manually specified
sed -i '5s/.*/Good morning/' file1.txt file2.txt file3.txt file4.txt
# wildcard: all files on the desktop
sed -i '5s/.*/Good morning/' ~/Desktop/*
# brace expansion: file1.txt, file2.txt, file3.txt, file4.txt
sed -i '5s/.*/Good morning/' file{1..4}.txt
Здесь вы можете узнать больше о расширениях скобок.
GNU awk версии 4.1.0 и выше, с , можно прочитать больше о расширениях скобок здесь , которые позволяют редактировать на месте. Поэтому вы можете сказать:
gawk -i inplace 'NR==5{$0="Good morning"}7' file
заменить строку # 5 в файле на Good morning!
Вы используете uck-2.4.5, у которого есть проблемы, я использую версию .deb, которая работает, просто используйте эту команду для установки:
sudo apt-get install uck