sed替换行首和行尾

我一直以为,用^$来代表行首和行尾,用sed可以很容易实现替换行首和行尾,但是没有想到还有一个&符号(可能还是需要根据sed版本, gsed (GNU sed) 4.8 我验证加不加 & 都一样),实际方法如下:

sed -i 's/^/HEAD&/g' test.file

sed -i 's/$/&TAIL/g' test.file

-i参数直接修改原文件

g表示每行出现的匹配字符全部替换,否则就只替换每行的第一个匹配字符

上述命令在每一行的前面添加 HEAD ,以及在每一行的末尾添加 TAIL 。例如,对于 test.file ,原先内容是:

abcd
ab cd

执行以后内容修改为

HEADabcdTAIL
HEADab cdTAIL

上述两条命令可以结合成一起使用

sed '/./{s/^/HEAD&/;s/$/&TAIL/}' test.file

参考

Last updated