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



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

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

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

由于您还没有提供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($0,/,[^,]*/) && NF==9替换match到上面的代码。

最新更新