我有一个很大的管道分隔文件,我需要查找某个字段为空的所有行的行号。
我可以用来cut -d \| -f 6 filename.txt
输出该列。
我可以使用什么实用程序/工具/命令来查找上面的哪些输出行是空的?
答案1
# cut -d \| -f 6 test.txt | grep -v -E .\+ -n
grep
-v invert match
-E .\+ match any 1+ character
-n output line numbers
答案2
您可以将cut
和结合起来,grep
如其他人所示,或者您可以使用通用文本过滤器awk
。
awk -F'|' '$6 == "" {print NR}'
答案3
^
正则表达式中匹配行的开头和$
结尾,因此^$
匹配空行。grep
接受一个-n
参数,该参数输出匹配行的行号而不是行本身,因此:
$ grep -n '^$'
您还可以使用-v
反转匹配并对不匹配的行进行计数,在这种情况下,您希望匹配至少具有一个字符的行(其中.
匹配任何字符):
$ grep -n -v .