Linux中的grep空白字段

Linux中的grep空白字段,linux,unix,Linux,Unix,我有一个1000行的文件,每行170个字段。我想grep一个特定的领域;例如,如果字段分隔符为“:”,则字段编号30是否为空 上述命令将打印字段30为空的行。您没有提到特定的字段分隔符,因此我将继续介绍一个基于CSV的示例。对于字段30为空,使用以下命令执行grep: 本质上,我们需要29个字段,每个字段都有一个逗号(,)分隔符,然后是一个不带中间文本的分隔符字符 -n选项的存在确保任何匹配都以行号作为前缀,以便您能够知道每个匹配在输入文件中的位置 我相信这对任何POSIX兼容的grep都有效,

我有一个1000行的文件,每行170个字段。我想grep一个特定的领域;例如,如果字段分隔符为“
”,则字段编号30是否为空


上述命令将打印字段30为空的行。

您没有提到特定的字段分隔符,因此我将继续介绍一个基于CSV的示例。对于字段30为空,使用以下命令执行grep:

本质上,我们需要29个字段,每个字段都有一个逗号(
)分隔符,然后是一个不带中间文本的分隔符字符

-n
选项的存在确保任何匹配都以行号作为前缀,以便您能够知道每个匹配在输入文件中的位置


我相信这对任何POSIX兼容的grep都有效,但我不确定。

粘贴文件的一部分(或此处的预期格式)。诀窍在于始终识别数据中可以利用的结构(或缺少)。您可以使用它。请尝试粘贴一些代码片段。我尝试了这个,但没有出现,awk-F“,“{if($20=”“)print$0}”,甚至只是
awk-F:'$30==”“”文件名
答案有输入错误;我修好了。请再试一次?或者干脆
awk-F:'$30'
awk -F":" '{if($30=="")print $0}' file_name
$ grep -n '^\([^,]*,\)\{29\},' test.csv 
2:2,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,55,,33