2016-07-20 2 views
0

я следующий формат набора данных:извлекая строки из файла нескольких столбцов

Identified_____ID#2357_____ReadSequence:1238 
Unknown_____0_____ReadSequence:0979 
Unknown_____0_____ReadSequence:5476 
Identified_____ID#567899_____ReadSequence:4376 

Используя awk команду, как я могу извлечь ReadSequences, но только те строки, которые были идентифицированы (основано на первой колонке записей)?

ответ

2
$ awk -F"_____" '$1=="Identified" {print $3}' test.in 
ReadSequence:1238 
ReadSequence:4376 

Если вы хотите только ReadSequence идентификаторов, gsub ваш друг:

$ awk -F"_____" '$1=="Identified" {gsub(/^.*:/,"",$3); print $3}' test.in 
1238 
4376 
1
awk -F'_____' '/^Identified/ {print $NF}' file 
ReadSequence:1238 
ReadSequence:4376 

ИЛИ

awk '/^Identified/ {split($0,a,"_____");print a[3]}' info 
ReadSequence:1238 
ReadSequence:4376 

ИЛИ если вы хотите только считывать значение ReadSequence затем

awk -F'_____' '/^Identified/ {split($NF,a,":"); print a[2]}' file 
1238 
4376 
0
$ awk -F':' '/^Identified/{print $NF}' file 
1238 
4376 
Смежные вопросы