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

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

Как можно использовать sed для замены всей первой строки файла на эту первую строку плюс какой-то дополнительный текст? Например, как можно добавить -fooфайл, содержащий только одну строку.

testfileначало содержания:

some-text

testfileКонец содержания:

some-text-foo

решение1

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

Как можно использовать sed для замены всей первой строки файла этой первой строкой и некоторым дополнительным текстом?

Вот еще один способ добавить строку в конец строки номер 1 с помощью SED в Windows, а затем преобразовать ее обратно в формат DOS для символов EOL, т. е. CRLF вместо LF...

Первая команда (добавляет символы -fooтолько в конец первой строки)

SED -i "1 s|$|-foo|" "C:\Path\testfile.txt"

Вторая команда (преобразовать EOL обратно в возврат каретки и перевод строки)

SED -i "s/$/\r/" "C:\Path\testfile.txt"

решение2

sed '1{s/$/-foo/}' file

1 для первой строки, можно использовать num,numдля назначения диапазона, например, 3,5 — это изменение строки 3 на строку 5. s для замены, $ означает конец строки. Если вы хотите изменить файл немедленно, используйте -i параметр, в любом случае, используйте его с осторожностью.

awk 'FNR==1{print $0 "-foo";}' file(s)

awk более мощный, но не имеет параметра -i для немедленного изменения файла.

решение3

Вы можете сделать это с помощью

sed -i '1!b;s/$/\-foo/g' testfile

Эта команда берет файл, просматривает только первую строку (1!b;), ищет конец строки ($) и заменяет его нужной вам строкой.

Связанный контент