Unix 在一个文件(即多行模式)中,用string3之后的string2替换string1的第n次出现

Unix 在一个文件(即多行模式)中,用string3之后的string2替换string1的第n次出现,unix,awk,sed,Unix,Awk,Sed,我正在使用sed尝试替换一个多行模式,尝试所有类似的事情 sed -i 'N;{string3} s/string1/string2/g;n' 但我甚至不知道这是否可能。有人能帮我吗 谢谢 不确定我是否正确理解了你的问题,但也许这就是你想要的(在awk中): 您可以试试这个awk awk '/string3/{n=1;c=1} n && /string1/ && c++ <= 5{ gsub(/string1/,"string2",$0)}1' your

我正在使用sed尝试替换一个多行模式,尝试所有类似的事情

sed -i 'N;{string3} s/string1/string2/g;n' 
但我甚至不知道这是否可能。有人能帮我吗


谢谢

不确定我是否正确理解了你的问题,但也许这就是你想要的(在awk中):


您可以试试这个
awk

awk '/string3/{n=1;c=1} n && /string1/ && c++ <= 5{ gsub(/string1/,"string2",$0)}1' yourfile

<代码> AWK \ StRIG3/{n=1;C=1 } & & /STRIG1//C++,源和结果的样本可能有点更好地理解。
awk '/string3/{n=1;c=1} n && /string1/ && c++ <= 5{ gsub(/string1/,"string2",$0)}1' yourfile