如何在UNIX中拆分特定模式上的文件

时间:2016-11-30 19:39:27

标签: unix awk sed split

我有一个要求,我必须以下划线模式拆分文件,结果应该分组。

例如,

我的文件包含,

url(r'^password-reset/done/$', login_views.password_reset_done, name='password_reset_done')

所以我的结果应该有4个文件, 第一个文件应该包含,

ADD1_5001AB
ADD1_5002AB
ADD1_5003BC
ADD2_5100XY
ADD2_5101YZ
CANC1_5200AB
CANC1_5201BC
CANC2_5301GH
CANC2_5302FG

第二个文件应该包含,

ADD1_5001AB
ADD1_5002AB
ADD1_5003BC

第三个文件应该包含,

ADD2_5100XY
ADD2_5101YZ

第四个文件应该包含,

CANC1_5200AB
CANC1_5201BC

请帮助。

感谢。

1 个答案:

答案 0 :(得分:3)

Awk是一个很好的解决方案:

awk -F"_" '{print $0 > $1}' infile.txt

将按下划线(-F"_")拆分,并将每一行(print $0)打印到以下划线(> $1)之前的位命名的文件。