如何使用公共字段提取行

use*_*107 2 bash awk sed uniq

我有这样的文件 -

1 2 3
1 4 5
a z 3
a 3 4
a f g
b b g
Run Code Online (Sandbox Code Playgroud)

我想将它分成多个文件(尽可能多的组),每个文件包含具有相同第一个字段的那些行.

 1 2 3
 1 4 5

 a z 3
 a 3 4
 a f g

 b b g
Run Code Online (Sandbox Code Playgroud)

我怎么做?我尝试了uniq --all-repeated=separate -w 32但它在查找重复项时考虑了完整的行,而不仅仅是第一列.

Fre*_*ihl 5

像这样的东西:

$ 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
Run Code Online (Sandbox Code Playgroud)