我有一个2列制表符分隔文件,我需要从中获取特定信息。 该文件如下所示:
wych_hazel agt|plt
wytensin agt
x agt|com|qud
xanax agt
xtc agt
xylocaine agt
yellow_jacket agt|anm
我需要从第二列开始,这些行只有值agt
。
所需的输出是:
wytensin agt
xanax agt
xtc agt
xylocaine agt
我试过了:
grep -e 'agt' input
给了我:
wych_hazel agt|plt
wytensin agt
x agt|com|qud
xanax agt
xtc agt
xylocaine agt
yellow_jacket agt|anm
然后我尝试过:
grep -oh 'agt' input
给了我:
agt
agt
agt
agt
agt
agt
agt
我应该引入哪些grep
参数来达到我想要的结果?
答案 0 :(得分:2)
这是awk
的工作:只需告诉它查找第二个字段正好agt
的那些行:
$ awk '$2=="agt"' file
wytensin agt
xanax agt
xtc agt
xylocaine agt
在grep
中,您还可以检查是否存在空格,然后检查agt
周围的行尾:
grep '\sagt$' file
答案 1 :(得分:1)
使用单词边界和-E
参数。
grep -E '^[^ ]+\s+.*\sagt$' file
答案 2 :(得分:1)
如果agt
始终位于该行的末尾,那么您可以这样做:
grep agt$ input