我有一个csv文件(t.txt),其中某些行有7个逗号,有些行有8个逗号 如果该行有8个逗号,我要删除该行中的第二个逗号。
有什么建议吗?我一直在尝试
if [[awk -F "," '{print NF-1}' == 8]]; then sed 's/\,//2'; t.txt
答案 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
。