2015-05-29 2 views
1

У меня есть некоторые данныепринести определенную строку из данных

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 

я пытался заменить | с \ т, а затем использовать Grep

Grep -w 'LOC_Os * тест> go.txt

, но не в состоянии принести их.

пожалуйста, помогите

ответ

0

Попробуйте следующие 2 команды:

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

и

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

Объяснение: cut извлекает поля из файла, используя трубы (|), как разграничены (-d'|'). Первая команда возвращает поле 4 (-f 4), а затем greps в результате для LOC_Os. Вторая команда возвращает поле 5 (-f 5), а затем greps в результате для Os.

Смежные вопросы