假设我的文件中包含以下行:

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中执行此操作的一行命令是什么?

最佳答案

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

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


输出

29

关于linux - 如何计算逗号分隔行中的字符数,其中分隔符内的逗号不算作分隔符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25846985/

10-13 07:26