![Behalten Sie nur Linien bei, die einem bestimmten Muster folgen](https://rvso.com/image/97236/Behalten%20Sie%20nur%20Linien%20bei%2C%20die%20einem%20bestimmten%20Muster%20folgen.png)
Ich habe eine Datei mit 5,5 Millionen Zeilen.
Beispiel:
chr1 10000 10468 + (TAACCC)n Simple_repeat Simple_repeat
chr1 10468 11447 - TAR1 Satellite telo
chr1 11504 11675 - L1MC5a LINE L1
chr1 11677 11780 - MER5B DNA hAT-Charlie
chr10_GL383545v1_alt 11877 11980 - Alu ERV1
chr11_BL383595v1_alt 12077 12980 - Alu ERV1
chr3 11504 11675 - L1MC5a LINE L1
Ich möchte nur die Zeilen behalten, die nicht _
in der ersten Spalte stehen
Die Ausgabe sähe etwa so aus:
chr1 10000 10468 + (TAACCC)n Simple_repeat Simple_repeat
chr1 10468 11447 - TAR1 Satellite telo
chr1 11504 11675 - L1MC5a LINE L1
chr1 11677 11780 - MER5B DNA hAT-Charlie
chr3 11504 11675 - L1MC5a LINE L1
Ich weiß nicht, wie viele meiner unerwünschten Zeilen vorhanden sind. Ich würde am liebsten verwenden, awk
aber normale Bash-Befehle sind auch in Ordnung.
Antwort1
awk
eignet sich am besten für den Umgang mit Spalten
awk '$1 !~ /_/' file
!~
ermöglicht die Überprüfung, ob etwas nicht dem Muster entspricht
Mitgrep
grep -v '^\S*_' file
oder, falls \S
nicht erkannt,
grep -v '^[^[:space:]]*_' file