我已经看到了关于模式匹配和行匹配分割文件的解决方案,但我想要的是以下内容。场景是,假设我有一个文件file1
-
A.B|100|20
A.B|101|20
A.X|101|30
A.X|1000|20
B.Y|1|1
现在我想根据第一列将此文件拆分为 3 个不同的文件,其中第一个文件将是A.B
第一列中包含的所有行,第二个文件应包含所有行,依此A.X
类推。
如果第一列发生变化反正,应该为这些行创建一个新文件。有什么方法可以用bash
or来做到这一点awk
吗?
由于无法事先实际知道第一列的值是什么,因此我无法使用任何类似split
or 的功能cut
。我在这里先向您的帮助表示感谢!
答案1
尝试:
awk -F\| '{print>$1}' file1
这会将每一行写入以第一列命名的文件中。
怎么运行的:
-F\|
将字段分隔符设置为|
。print>$1
将当前行打印到名称为第一个字段的文件中。