Sed 查找paten并在文件中追加和替换它

Sed 查找paten并在文件中追加和替换它,sed,Sed,我想搜索一个模式并将其附加到文件中 确切地说,这里是我的模式的一个示例,一个文件中有数百个 <size>30</size> needs to be replaced with <size>30,-1</size> 我如何做到这一点 感谢使用sed您可以用括号存储部分匹配文本,并将其包含在替换内容中: 例如: sed 's:<size>\([0-9][0-9]*\)</size>:<size>

我想搜索一个模式并将其附加到文件中

确切地说,这里是我的模式的一个示例,一个文件中有数百个

         <size>30</size> needs to be replaced with <size>30,-1</size>
我如何做到这一点


感谢使用
sed
您可以用括号存储部分匹配文本,并将其包含在替换内容中:

例如:

sed 's:<size>\([0-9][0-9]*\)</size>:<size>\1,-1</size>:g' ...
sed's:\([0-9][0-9]*\):\1,-1:g'。。。

。。。以及关于从文件中读取sed命令:

s:<size>\([0-9][0-9]*\)</size>:<size>\1,-1</size>:g

如果有多个命令,请将每个命令放在各自的行中

我知道这没有在
perl
下标记,所以可以忽略它。但是有了perl的积极的前瞻和
后顾
,您就可以这样做了-

perl -pe 's/(?<=\<size\>)([0-9]{2})(?=\<\/size\>)/$1,-1/' yourfile

perl-pe的/(?如果你想从一行匹配,但在另一行替换怎么办?
sed -f commands.sed file.html   
perl -pe 's/(?<=\<size\>)([0-9]{2})(?=\<\/size\>)/$1,-1/' yourfile