>我有一个文件,其中有许多注释行随机抛出,格式如下
Comment,blahblahblah
Comment,blahblahblah
Comment,blahblahblah
我想在注释行中添加一个递增的数字,例如
Comment,1 blahblahblah
Comment,2 blahblahblah
Comment,3 blahblahblah
我试过这个没有运气
awk '{for(x=1;x<=NF;x++)if($x~/Comment,/){sub(/Comment,/Comment, ++i)}}1' filename
要sub()
的第二个参数应该是一个字符串,这需要Comment,
两边的引号。
也无需遍历列,您可以简单地匹配整行。
awk '/Comment,/ { sub(/Comment,/, "Comment, " ++i) }1' filename
另一个awk
$ awk '{i+=sub(/^Comment,/,"&" i+1 " ")}1' file
Comment,1 blahblahblah
Comment,2 blahblahblah
Comment,3 blahblahblah
你甚至不需要awk
(除非你需要它很快(。
#!/usr/bin/env bash
counter=0
while IFS= read -r line; do
[[ $line = *Comment,* ]] && line=${line//Comment,/Comment,$((++i)) }
printf '%sn' "$line"
done
awk '{gsub("Comment,","Comment,"NR,$0);print;}' filename