获取具有空字段的行的行号

获取具有空字段的行的行号

我有一个很大的管道分隔文件,我需要查找某个字段为空的所有行的行号。

我可以用来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 .

相关内容