Ответ 1
Это может сработать для вас (GNU sed):
sed -i '1!b;s/test/blah/' file
заменит первый test
на blah
только на первую строку.
Или если вы просто хотите изменить первую строку:
sed -i '1c\replacement' file
Как заменить строку, но только в первой строке файла, используя программу "sed"?
Команды s/test/blah/1
и 1s/test/blah/
, похоже, не работают. Есть ли другой способ?
Это может сработать для вас (GNU sed):
sed -i '1!b;s/test/blah/' file
заменит первый test
на blah
только на первую строку.
Или если вы просто хотите изменить первую строку:
sed -i '1c\replacement' file
Это будет сделано:
sed -i '1s/^.*$/Newline/' textfile.txt
В противном случае убедитесь, что совпадение уникально только для линии 1:
sed -i 's/this is line one and its unique/Changed line one to this string/' filename.txt
Опция -i
записывает изменение в файл вместо того, чтобы просто выводить вывод на стандартный вывод.
ИЗМЕНИТЬ:
Для замены всей строки путем сопоставления общей строки будет:
sed -i 's/^.*COMMONSTRING$/Newline/'
Где ^
соответствует началу строки, $
соответствует концу строки, а .*
соответствует всем upto COMMONSTRING
это заменяет все совпадения, а не только первое совпадение, только в первой строке, конечно:
sed -i '1s/test/blah/g' file
/g сделал трюк, чтобы заменить более одного совпадения, если таковое существует.