2016-11-30 21 views
0

我有一个要求,我必须在下划线模式中分割文件,并且应该对结果进行分组。如何在UNIX中以特定模式分割文件

对于例如,

我的文件包含,

ADD1_5001AB 
ADD1_5002AB 
ADD1_5003BC 
ADD2_5100XY 
ADD2_5101YZ 
CANC1_5200AB 
CANC1_5201BC 
CANC2_5301GH 
CANC2_5302FG 

所以我的成绩应该有4个文件, 一号文件应包含,

ADD1_5001AB 
ADD1_5002AB 
ADD1_5003BC 

第二个文件应包含,

ADD2_5100XY 
ADD2_5101YZ 

第三文件应包含,

CANC1_5200AB 
CANC1_5201BC 

第四档应包含

CANC2_5301GH 
CANC2_5302FG 

请帮助。

谢谢。

回答

3

AWK是这方面的一个很好的解决方案:

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

将由下划线(-F"_")分裂,并打印出每个行(print $0)的下划线(> $1)前位的名字命名的文件。

+0

非常感谢JNevill,它的工作方式正是我想要的。 –

+0

我有另一个问题。你是否也可以帮助我根据行号拆分同一个文件,I.e在它被分割为下划线之后,它必须再次在行号处分割。在同一个awk命令中 –

+0

请提出一个新问题 – JNevill

相关问题