特定のパターンに従う線のみを残す

特定のパターンに従う線のみを残す

550 万行のファイルがあります。

例:

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

_最初の列にない行だけを残したい

出力は次のようになります。

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

不要な行がいくつ存在するかわかりません。 できれば使用したいのですawkが、通常の bash コマンドでも問題ありません。

答え1

awk列を扱うのに最適

awk '$1 !~ /_/' file

!~パターンに一致しないものがあるかどうかをチェックできます


grep

grep -v '^\S*_' file

または、\S認識されない場合、

grep -v '^[^[:space:]]*_' file

関連情報