用sed脚本在input文件里的file:后追加一行 结果出错:.append.sed: line 6: file:iWe: 没有那个文件或

用sed脚本在input文件里的file:后追加一行 结果出错:.append.sed: line 6: file:iWe: 没有那个文件或,第1张

We insert a new line. 需要放在双引号里,表示是一个整体。

因为命令解释默认是以空格为命令分隔符的,这样插入的内容只有We,而空格后面的内容会被解释为sed的输入文件,所以报这个错。

--------------------------------------------------------------------------------

明白为什么你不行了,脚本第一行不能有注释。

第一行必须放 #!/bin/sed -f

用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

使用捕获分组好像只能用在替换里面,思路:

(1)找到Hello的行,保存到缓冲区

(2)整行替换为\1 Tom.

(3)交换缓冲区

(4)读取缓冲区内容,追加到后面

echo "Hello World" | sed  -r "/Hello/hs/(Hello).*/\1 Tom./xG"

注意:Hello之前如果还有内容,需要修改替换的查找正则


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存