-1

我有一个包含 1000 行的文件,每行包含 170 个字段。我想grep一个特定的领域;例如,字段编号 30 是否为空白......

4

2 回答 2

0

如果字段分隔符是“ :

awk -F":" '{if($30=="")print $0}' file_name

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

于 2012-08-06T09:09:09.990 回答
0

您没有提到特定的字段分隔符,所以我将继续使用基于 CSV 的示例。对于grep字段 30 为空白,使用GNU grep

$ 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

本质上,我们需要 29 个字段,每个字段都带有一个尾随逗号 ( ,) 分隔符,然后是另一个分隔符,后面直接没有中间文本。

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

我相信这适用于任何与 POSIX 兼容的 grep,但我不确定。

于 2012-08-07T07:43:37.893 回答