Как добавить текст в конец определенной строки файла?

Если бы мне нужно было добавить имя пользователя в конец строки 32 файла, как бы я это сделал?

Я могу найти в Google, как добавить текст в начало строки с помощью sed , но не могу понять, как добавить его в конец или даже в середину, если это было возможно.

Вы можете заменить свой текст на конец строки ( $ ) следующим образом:

 sed -e '32s/$/your_text/' file 

Для вставки текста в середину строки будет полезна некоторая информация о структуре строки.

Пытаться:

 sed '32s,$,SOMETHING TO ADD,' FILE 

Использование awk :

 awk -v username='some username' -v line=32 'NR == line { $0 = $0 username } 1' file 

Чтобы вставить имя пользователя в середину строки, нужно знать больше о том, как выглядят строки в файле.

Если имя пользователя и строка являются переменными:

 awk -v username="$username" -v line="$line" 'NR == line { $0 = $0 username } 1' file 

Если вы хотите вставить пробел перед именем пользователя:

 awk -v username="$username" -v line="$line" 'NR == line { $0 = $0 " " username } 1' file 

Используя ed :

 $ seq 100 > 100file $ username=jeff $ ed -s 100file <<< $'32s/$/'"$username"$'/\nw\nq' $ sed -n 28,34p 100file 28 29 30 31 32jeff 33 34 

Завершающая строка / замещающей строки подавляет поведение печати по умолчанию.