特定のパターンに従う行のみを保持

特定のパターンに従う行のみを保持

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

おすすめ記事