在unix中搜索与特定列模式匹配的行

c86crjj0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(427)

我使用hdfs来获取符合特定列中模式的数据,并希望它输出整行(预计产量为700万条生产线中的200万条)
这里是我的确切情况:我想在一个文件中的第4列数据以“5”开头的整行
例如,我的数据集:

HK|20151010|65|5005
KR|20151009|38|5092
MD|20150925|98|1943
BG|20150826|82|4892
HK|20151017|14|5002

我希望命令产生以下结果:

HK|20151010|65|5005
KR|20151009|38|5092
HK|20151017|14|5002

非常感谢(注意:我无法搜索整行,因为其他列中有匹配项,其中列数据将以5开头)

kcwpcxri

kcwpcxri1#

grep可以用[^x]+x魔法来实现这一点。以下是基本形式和扩展形式的正则表达式:

grep '^\([^|]\+|\)\{3\}5'
egrep '^([^|]+\|){3}5'
pprl5pva

pprl5pva2#

怎么样:

awk -F'|' '$4~/^5/' file

如果第4列始终是最后一列,则该行也应起作用:

grep '|5[^|]*$' file

相关问题