基于Bash中的字段拆分文件

时间:2017-02-13 12:47:28

标签: bash awk

我有一个关于根据字段创建文件的快速问题。我有一个这样的文本文件,有大约1700万行

#head file
1:85928892
1:107819621
2:36082010
2:128341232
3:209652100
3:51112281
4:55643311
4:52236363
5:38213701
5:4429872

我想使用行的第一部分创建不同的文件,就在:部分之前,所以,我想要的输出是:

file.1
1:85928892
1:107819621

file.2
2:36082010
2:128341232

file.3
3:209652100
3:51112281

file.4
4:55643311
4:52236363

file.5
5:38213701
5:4429872

:之前的数字从1到22,我可以在R中做,但我想在bash / awk中这样做,因为它可能会更快

1 个答案:

答案 0 :(得分:4)

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

试试这个单行程,没有测试,但它应该去。