假设这是我的文件:
$ 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