TSVファイルから数十億行の列をフィルタリングする方法

TSVファイルから数十億行の列をフィルタリングする方法

私は数十億行のデータを含むリストに取り組んでいます。

次のデータがあります。 ここに画像の説明を入力してください。

ご覧のとおり、4番目の列(遺伝子列)には遺伝子名がありますが、すべての行に「遺伝子名」があるわけではありません。 4番目の列で「遺伝子名」の完全なリストを取得する必要があります。

必要なものをどのように取得できますか?

ベストアンサー1

次の1行を試してください。

cut -f4 in.tsv | tail -n +2 | grep -P '\S'

詳細::
cut -f4 in.tsv入力ファイルのタブで区切られた4番目の列を出力しますin.tsv
tail -n +2:最初の行(タイトル)を削除します。
grep -P '\S':空白以外の文字を含む行のみを保持します。つまり、空行を削除します。 Perl正規表現を使用するように -P教えてください。grep

一意の遺伝子名だけが必要な場合は、sort -u次のように追加してください。

cut -f4 in.tsv | tail -n +2 | grep -P '\S' | sort -u

おすすめ記事