我正在尝试使用gawk
在Pattern之后插入一行。
比方说,文件aa
包含
11
22
33
11
22
33
我使用gawk仅在第22个之后插入222,即在插入之后,我的aa文件将包含:
11
22
222
33
11
22
33
但是,如果我使用:
gawk -v nm=222 '/22/ {if (done++ == 0) print;print nm;next}1' aa
文件aa包含:
11
22
222
33
11
222
33
(我不希望第二次更换22乘222,并希望保留22原样,不再插入,我,e,。在第22次之后仅插入222次。 请帮忙。
答案 0 :(得分:2)
MediaExtractor
说明:
$ awk '1; $1==nm2 && !a++ {print nm1}' nm1=222 nm2=22 file
11
22
222
33
11
22
33
答案 1 :(得分:2)
您可以使用:
awk '/^22$/ && !f {f=1; print; print "222"; next} 1' aa.txt
我检查一行是否只包含22
,以及是否未设置标记f
。在这种情况下,我将标志设置为1,打印当前行和222
答案 2 :(得分:1)
请改用此代码:
gawk -v nm=222 '/22/ {if (done++ == 0){print;print nm;next}};1' aa
如果值22在变量中:在awk
中,您无法使用/constantRegex/
,
你需要使用~
:
sel=22
gawk -v nm=222 -v sel="$sel" '($0~sel) {if (done++ == 0){print;print nm;next}};1' aa