如果我有这样的数据,
1 item1,
2 item2,
3 item3,
4 item4,
5 item5
我想用item4和item5替换item3
除了这个还有别的吗?
awk -F ' ' '{gsub("item4","item3",$2);gsub("item5","item3",$2); print}' OFS=" " file
发布于 2020-02-14 15:10:06
是output
你会有
1 item1,
2 item2,
3 item3,
4 item3,
5 item3
如果你也有item48
,item522
等。
它是
output
发布于 2020-02-14 16:11:41
若要将行与item44
或item51
不匹配,请在替换值(如博鲁索氏 sed
解决方案)之前测试可选逗号(,?
)和字段结束($
):
awk '$2 ~ /^item[45],?$/{ gsub(/item[45]/, "item3", $2) } 1' file
或者是GNU awk
的S gensub
:
awk '{ $2=gensub(/^item[45](,?)$/, "item3\\1", 1, $2) } 1' file
https://unix.stackexchange.com/questions/567600
复制相似问题