我如何替换字符串,但只有在使用该程序文件的第一行“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
如果做不到这一点,只要确保比赛是唯一的只行一个:
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匹配行的结束和^
匹配所有字符都$
这取代了所有的比赛,不只是第一场比赛,只有在课程的第一行:
.*
在/ G的伎俩来替换多个匹配,如果存在的话。