File1中:
abcxyz
b
abcxyz
abcxyz
b
c
OUTPUTFILE:
abcxyz
b
abcxyz someValueAddedHere
abcxyz
b
c
sed '/^abcxyz/ s/$/ someValueAddedHere/2' File1
以上命令不适用于特定事件,适用于所有事件。需要处理指定的事件。
感谢您的编辑,祝您好日子
答案 0 :(得分:1)
关注awk
可能对您有所帮助。我在考虑你需要在Input_file中第二次出现abcxyz
,你需要插入字符串。您也可以更改代码中出现的次数。
awk '/abcxyz/{count++} /abcxyz/ && count==2{print $0,"someValueAddedHere";next} 1' Input_file
如果您需要将输出保存到Input_file本身,请将> tmp_file && mv tmp_file Input_file
附加到上面的代码中。
答案 1 :(得分:1)
sed用于执行s/old/new/
,全部。在20世纪80年代中期,当awk被发明并且今天仅用于心理练习而不是用于解决问题的真正解决方案时,用于做其他任何事情的sed构造已经过时了,因为awk等价物总是会更有效,更便携的组合,更健壮,更简单,更清晰。
$ awk '/abcxyz/ && (++c == 2){$0 = $0 " someValueAddedHere"} 1' file
abcxyz
b
abcxyz someValueAddedHere
abcxyz
b
c
答案 2 :(得分:0)
用sed进行心理锻炼
sed '
/^abcxyz/!b
:A
$b
N
/\nabcxyz/!bA
s/$/ someValueAddedHere/
:B
n
bB
' File1
或者使用gnu sed
sed -z 's/\(\nabcxyz\)/& someValueAddedHere/' File1