仅使用'grep'命令获取特定的列

2022-01-27 22:20:55 标签 linuxcsvunixgrepcat

这下面显示了这几行csv文件,我想要得到的结果,只有得到人口列仅使用grep命令。

id,Association,Population,Variant(s),Gene(s),PubMed
1,non-significant,Dutch,HLA-B40,HLA-B,1859103
2,non-significant,Dutch,HLA-DRB5,HLA-DRB5,1859103
3,non-significant,Finnish,APOB,APOB,8018664
4,significant,Finnish,APOC3,APOC3,8018664
5,significant,Finnish,E2/E3/E4,APOE,8018664
6,significant,French,I/D,ACE,8136829

我想要的结果:

Dutch
Dutch
Finnish
Finnish
Finnish
French

我对这个问题的命令是

 cat information.csv | grep -Eo '^([^,]*,){2}[^,]*'

结果如下

id,Association,Population
1,non-significant,Dutch
2,non-significant,Dutch
3,non-significant,Finnish
4,significant,Finnish
5,significant,Finnish
6,significant,French

我如何摆脱其余的东西,而不使用awk sed或任何其他东西?

###你可以使用一个带有PCRE模式的GNU grep:

grep -Po '^([^,]*,){2}\K[^,]*' file

在这里

^ -字符串的开始

([^]*){2} -除and then a以外的任意0个或多个字符出现两次

K -匹配复位操作符,丢弃到目前为止所有匹配的文本

[^]* -除逗号外的零个或多个字符。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码