从数据中获取特定字符串

时间:2015-05-29 10:46:56

标签: regex grep

我有一些数据

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

但无法获取。

请帮助

1 个答案:

答案 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。