假设我的文件中包含以下行:
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/