これが私のファイルであると仮定します:
$ cat file.txt
A:1:i
B:2:ii
X:9:iv
このような for ループを使用すると、すべてのフィールドを個別に出力して、サブファイルにリダイレクトできます
$ for i in $(seq 1 3); do echo $i; awk -F ":" -v FL=$i '{print $FL}' file.txt > $i.out; done
となることによって:
$ cat 1.out
A
B
X
$ cat 2.out
1
2
9
$ cat 3.out
i
ii
iv
質問: ほぼ 70 列で、ほぼ 10 GB のファイル サイズでこれを実行する必要があります。動作しますが、遅いです。このビッグデータセットで作業するためのより良い/効率的な分割を提案できる人はいますか? ありがとう。
$ for i in $(seq 1 70); do echo $i; awk -F ":" -v FL=$i '{print $FL}' *.data > $i.out; done