如何计算逗号分隔行中的字符数,其中分隔符中的逗号不应被视为单独的?

时间:2014-09-15 11:25:55

标签: linux string

假设我的文件中有以下行:

HELLO,1410250216446000,1410250216470330,1410250216470367,329,PE,B,T,GALU,[ ,  , T, I],3.38,3,A,A, , , , ,0, ,0,0, ,-Infinity,-Infinity,-Infinity, ,,0

如果我使用

grep -a -w HELLO my_file | head -10 | awk -F '[\t,]' '{print NF}' | less

输出为32。

但我不想在[]中计算逗号。我的意思是[,,T,I]必须算作一个单词。这样我的查询输出就是29。

在Linux中执行此操作的一行命令是什么?

1 个答案:

答案 0 :(得分:0)

使用sed删除括号内的内容。然后继续计算

grep -a -w HELLO my_file|sed "s/\[.*\]//g" | head -10 | awk -F '[\t,]' '{print NF}' | less

<强>输出

29