在SED的第一线替换字符串

问题描述 投票:13回答:3

我如何替换字符串,但只有在使用该程序文件的第一行“sed的”?

命令s/test/blah/11s/test/blah/似乎并不管用。有另一种方式?

string replace sed
3个回答
28
投票

这可能会为你工作(GNU SED):

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

只会替换第一testblah仅在第一线。

或者,如果你只是想改变的第一行:

sed -i '1c\replacement' file 

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选项写入更改文件,而不是仅仅显示输出到标准输出。

编辑:

要通过共同的字符串匹配将是更换整个行:

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

凡qazxsw POI行的开头匹配,qazxsw POI匹配行的结束和^匹配所有字符都$


0
投票

这取代了所有的比赛,不只是第一场比赛,只有在课程的第一行:

.*

在/ G的伎俩来替换多个匹配,如果存在的话。

© www.soinside.com 2019 - 2024. All rights reserved.