各行の最初の単語と一致するように分割コマンドの出力名をどのように変更できますか?

各行の最初の単語と一致するように分割コマンドの出力名をどのように変更できますか?

次のようなinput.txtファイル(4行)があります。

GGTAACC_MIR4095P   USP7    MKRN1   TSHZ3   EIF2C1  SRSF8   CAMK2G      ARID4B
GCM_TINF2            MORF4L1 ABHD16A ZNF274  C7orf43 SNX33
chr9q34         MRPL41  OR5C1   LOC138159       GBGT1
REACTOME_SIGNALING_BY_NOTCH1            HDAC6   HDAC5   MAMLD1 

このファイルを4つのファイル(元のファイルは39行)に分割して、各行の最初の単語に名前が付けられた4つのファイルを取得するにはどうすればよいですか。 GGTAACC_MIR4095P.txt GCM_TINF2.txt chr9q34.txt REACTOME_SIGNALING_BY_NOTCH1.txt

これまで私が試したことは次のとおりです。

split -d -a 2 -l 1 input.txt output_

これは私が必要とする解決策から離れています。

@steeldriverが提案したように、解決策は次のとおりです。

awk -F " " '{print >$1".txt"}' input.txt

ベストアンサー1

ミラー(https://github.com/johnkerl/miller) 使用

mlr --nidx --ifs ' ' --repifs unsparsify then put -q 'tee > $1.".txt", $*' input.txt

次の 4 つのファイルがあります。

chr9q34.txt
GCM_TINF2.txt
GGTAACC_MIR4095P.txt
REACTOME_SIGNALING_BY_NOTCH1.txt

おすすめ記事