计算字符实例的数量并在条件中使用它

时间:2018-11-16 01:37:50

标签: awk replace conditional-statements

我有一个csv文件(t.txt),其中某些行有7个逗号,有些行有8个逗号 如果该行有8个逗号,我要删除该行中的第二个逗号。

有什么建议吗?我一直在尝试

if [[awk -F "," '{print NF-1}' == 8]]; then sed 's/\,//2'; t.txt

1 个答案:

答案 0 :(得分:0)

由于您尚未提供Input_file的样本或预期的输出,因此无法进行测试,因此,请您试一试。

echo "a,a,a,d,f,g,h,h,f" |
awk '
 match($0,/,[^,]*/){
   print substr($0,1,RSTART-1) substr($0,RSTART,RLENGTH) substr($0,RSTART+RLENGTH+1)
   next
}
1'

a,aa,d,f,g,h,h,f

如果您也想检查8个逗号,则也可以在上面的代码中将match替换为match($0,/,[^,]*/) && NF==9