我有一些数据
FON2_ORYSJ|FON2|FON4|LOC_Os11g38270|Os11g0595400
A1IGU8_ORYSJ|OsF5HL|Os06g0349700
A1IGU8_ORYSJ|OsF5HL|Os06g0349700
MTND1_ORYSJ|ARD1|SIP2|LOC_Os10g28350|Os10g0419400|OSJNBa0006I13.11
MTND1_ORYSJ|ARD1|SIP2|LOC_Os10g28350|Os10g0419400|OSJNBa0006I13.11
MTND1_ORYSJ|ARD1|SIP2|LOC_Os10g28350|Os10g0419400|OSJNBa0006I13.11
MTND1_ORYSJ|ARD1|SIP2|LOC_Os10g28350|Os10g0419400|OSJNBa0006I13.11
我需要分别获取LOC_OS *和Os * id。
输出应该像
LOC_Os11g38270
LOC_Os10g28350
LOC_Os10g28350
LOC_Os10g28350
LOC_Os10g28350
和
Os11g0595400
Os10g0419400
Os10g0419400
Os10g0419400
Os10g0419400
我试图替换|用\ t然后使用grep
grep -w'LOC_Os *'test> go.txt
但无法获取。
请帮助
答案 0 :(得分:0)
尝试以下两个命令:
cut -d'|' -f 4 test.dat | grep LOC_Os
和
cut -d'|' -f 5 test.dat | grep Os
解释:cut
使用竖线(|)作为分隔符(-d'|'
)从文件中检索字段。第一个命令返回字段4(-f 4
),然后在LOC_Os
的结果中返回grep。第二个命令返回字段5(-f 5
),然后在Os
的结果中greps。