sed在第一行中替换字符串

ire*_*rek 14 string replace sed

如何使用程序"sed"替换字符串但仅在文件的第一行?

这些命令s/test/blah/11s/test/blah/似乎并没有工作.还有另外一种方法吗?

pot*_*ong 31

这可能适合你(GNU sed):

sed -i '1!b;s/test/blah/' file
Run Code Online (Sandbox Code Playgroud)

只会替换第一个test用于blah仅在第一线.

或者,如果您只想更改第一行:

sed -i '1c\replacement' file 
Run Code Online (Sandbox Code Playgroud)

  • @lzap"1!b"=如果在`1`上的`not`然后`b`ranch到脚本的结尾 (4认同)

Chr*_*our 4

这将做到这一点:

sed -i '1s/^.*$/Newline/' textfile.txt
Run Code Online (Sandbox Code Playgroud)

如果失败,只需确保匹配仅对第一行是唯一的:

sed -i 's/this is line one and its unique/Changed line one to this string/' filename.txt
Run Code Online (Sandbox Code Playgroud)

-i选项将更改写入文件,而不是仅将输出显示到标准输出。

编辑:

通过匹配公共字符串来替换整行将是:

sed -i 's/^.*COMMONSTRING$/Newline/'
Run Code Online (Sandbox Code Playgroud)

where^匹配行的开头、$匹配行的结尾并.*匹配所有内容COMMONSTRING