linux sed如何添加一行字符串,并且不重复

linux sed如何添加一行字符串,并且不重复,第1张

用sed命令在行首或行尾添加字符的命令有以下几种:

假设处理的文本为test.file

在每行的头添加字符,比如"HEAD",命令如下:

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

在每行的行尾添加字符,比如“TAIL”,命令如下:

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

运行结果如下图:

几点说明:

1."^"代表行首,"$"代表行尾

2.'s/$/&TAIL/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了

例:

3.如果想导出文件,在命令末尾加">outfile_name";如果想在原文件上更改,添加选项"-i",如

4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令:sed '/./{s/^/HEAD&/s/$/&TAIL/}' test.file

macOS 的 sed 命令是 BSD 版本的,和 GNU 版本的 sed 有区别。

用 brew 安装 gnu-sed:

brew install gnu-sed

安装好的命令是 gsed 。

匹配```和```之间的多行内容,并在它们的行首添加 4 个空格:

gsed -i '/```/{:ans/^/ /g/```/!ba}' filename

配合 find 命令,批量处理所有文件:

find . -name "*.md" -exec gsed -i '/```/{:ans/^/ /g/```/!ba}' {} \

“多行处理”参考自 https://www.cnblogs.com/yangxiaochu/p/7602884.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11778501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存