我有一个包含 1000 行的文件,每行包含 170 个字段。我想grep一个特定的领域;例如,字段编号 30 是否为空白......
问问题
3040 次
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 回答