我有一个这样的文件-
1 2 3
1 4 5
a z 3
a 3 4
a f g
b b g
我想将其拆分为多个文件(与组一样多),每个文件都包含具有相同第一个字段的行。
1 2 3
1 4 5
a z 3
a 3 4
a f g
b b g
我怎么做?我尝试过uniq --all-repeated=separate -w 32
,但在查找重复项时它会考虑完整的行,而不仅仅是第一列。
像这样的东西:
$ awk '{print > $1}' input
$ cat 1
1 2 3
1 4 5
$ cat a
a z 3
a 3 4
a f g
$ cat b
b b g
更好的文件命名方法:
$ ls
file
$ awk '!($1 in a){a[$1]="file"++i}{print > a[$1]}' file
$ ls
file file1 file2 file3
$ cat file1
1 2 3
1 4 5
$ cat file2
a z 3
a 3 4
a f g
$ cat file3
b b g