我有一个大约 10 GB 的文件,因此无法在我心爱的 Excel 中处理它。我需要根据第一个数字将该文件切成多个部分。例如,该文件看起来像这样。
0.213;89;230;0.1234
0.213;323;650;0.3500
0.213;8234;10;0.7863
...
0.653;89;230;0.1234
0.653;323;650;0.3500
0.653;8234;10;0.7863
..
1.213;89;230;0.1234
1.213;323;650;0.3500
1.213;8234;10;0.7863
其中点表示 0.213 后面大约有 200 行。我真正想要实现的是我使用 awk、csplit 或类似的东西。纯粹根据第一个数字将这个大文件分割成多个较小的文件。所以..... 0.213 和 0.653 应放在一个文件中,而 1.213 以及以 1.xxx 开头的任何内容应放在下一个文件中。
答案1
有了awk
,你会这样做:
awk '{file = "output" substr($0, 1, 1) ".txt"; print > file}' < input.txt
请注意, for 的行将像or , ...的行一样10.123
进入。output1.txt
1.123
11.123
123123.123
或者,你可以这样做:
awk -F'[.;]' '{file = "output" $1 ".txt"; print > file}' < input.txt
.
对于要根据第一个或之前的行的内容命名的文件;
(以 开头10.123;...
或10;...
进入的行output10.txt
)。