我搜索了一段时间,找不到对此的回应。我有一个标准 tsv 文件,格式如下:
1 100 101 350 A
1 101 102 300 A
1 102 103 180 A
1 800 801 60 B
1 801 802 70 B
1 802 803 82 B
1 975 976 105 C
1 976 977 108 C
等等。这会持续几百万行,并且第 5 列(A、B、C)中有 1000 个不同的区域。这些区域的行数大小各不相同。我想迭代该文件并将每个区域拆分为自己的文件。
文件A.txt
1 100 101 350 A
1 101 102 300 A
1 102 103 180 A
文件B.txt
1 800 801 60 B
1 801 802 70 B
1 802 803 82 B
文件C.txt
1 975 976 105 C
1 976 977 108 C
With awk
awk '{out = "File" $NF ".txt"; print >> out; close(out)}' file
更高效,不在每行之后关闭目标文件:
awk '
$NF != dest {if (out) close(out); dest = $NF; out = "File" dest ".txt"}
{print >> out}
' file
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)