sed在第一行中替换字符串

时间:2012-09-21 07:38:14

标签: string replace sed

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

命令s/test/blah/11s/test/blah/似乎不起作用。还有另一种方式吗?

3 个答案:

答案 0 :(得分:28)

这可能适合你(GNU sed):

sed -i '1!b;s/test/blah/' file

只会在第一行替换test的{​​{1}}。

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

blah

答案 1 :(得分:2)

这样做:

sed -i '1s/^.*$/Newline/' textfile.txt

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

sed -i 's/this is line one and its unique/Changed line one to this string/' filename.txt

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

编辑:

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

sed -i 's/^.*COMMONSTRING$/Newline/'

^匹配行的开头,$匹配行尾,.*匹配COMMONSTRING

之前的所有内容

答案 2 :(得分:0)

这将替换所有匹配项,而不仅是第一个匹配项,而且仅替换第一行:

 sed -i '1s/test/blah/g' file

/ g欺骗了,以替换多个匹配项(如果有)。