我已经看到了在模式匹配和行匹配方面拆分文件的解决方案,但我想要的是以下内容。情况是,假设我有一个文件file1
-
A.B|100|20
A.B|101|20
A.X|101|30
A.X|1000|20
B.Y|1|1
Run Code Online (Sandbox Code Playgroud)
现在我想根据第一列将此文件拆分为 3 个不同的文件,其中第一个文件将是A.B
第一列中包含的所有行,第二个文件应包含所有行,A.X
依此类推。
如果第一列有任何变化,应该为这些行创建一个新文件。有没有办法用bash
或来做awk
?
由于无法事先知道第一列的值是什么,因此我无法使用任何功能,例如split
或cut
。我在这里先向您的帮助表示感谢!
我想删除与单词匹配的行,name
但不删除后面有内容的行。我似乎无法找到答案。我知道sed -i '/name/d' *
会删除与单词匹配的整行,name
但这不是我想要的。一个例子将澄清我的问题。如果输入是 -
name xav
name lmn
name
name abc
Run Code Online (Sandbox Code Playgroud)
那么输出应该是 -
name xav
name lmn
name abc
Run Code Online (Sandbox Code Playgroud)
基本上与线name
和没有其他应予以删除。其余的需要留下来。