从数据中获取特定字符串

fetch specific string from data

我有一些数据

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*' 测试>go.txt

但无法获取这些。

请帮忙

尝试以下 2 个命令:

cut -d'|' -f 4 test.dat | grep LOC_Os

cut -d'|' -f 5 test.dat | grep Os

说明cut 从文件中检索字段,使用竖线 (|) 作为分隔符 (-d'|')。第一个命令 returns 字段 4 (-f 4),然后在 LOC_Os 的结果中进行 greps。第二个命令 returns 字段 5 (-f 5) 然后在 Os.

的结果中进行 greps