2016-07-20 16 views
0

I haben das folgende Format des Datensatzes:Extrahieren von Linien aus einer mehrspaltigen Datei

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

awk Befehl benutzen, wie kann ich die ReadSequences sondern nur Linien extrahieren, welche (basierend auf der ersten Spalte identifiziert worden sind Einträge)?

Antwort

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

Wenn Sie nur die ReadSequence ids wollen, ist gsub Freundes:

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

ODER

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

oder wenn Sie wollen nur den Wert von ReadSequence dann lesen

awk -F'_____' '/^Identified/ {split($NF,a,":"); print a[2]}' file 
1238 
4376 
0
$ awk -F':' '/^Identified/{print $NF}' file 
1238 
4376 
Verwandte Themen