2016-11-30 14 views
0

ファイルをアンダースコアパターンで分割する必要があり、その結果をグループ化する必要があります。例えばのためにUNIXの特定のパターンでファイルを分割する方法

私のファイルが含まれている、

ADD1_5001AB 
ADD1_5002AB 
ADD1_5003BC 
ADD2_5100XY 
ADD2_5101YZ 
CANC1_5200AB 
CANC1_5201BC 
CANC2_5301GH 
CANC2_5302FG 

ので、私の結果は

、第二のファイルが含まれている必要があり

ADD1_5001AB 
ADD1_5002AB 
ADD1_5003BC 

、 第一のファイルが含まれている必要があり、4つのファイルを持っている必要があります

ADD2_5100XY 
ADD2_5101YZ 

第三のファイルが含まれている必要があり、

CANC1_5200AB 
CANC1_5201BC 

第四ファイルは、

CANC2_5301GH 
CANC2_5302FG 

親切に助けを含める必要があります。

ありがとうございました。

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

アンダースコア(-F"_")によって分割、およびアンダースコア(> $1)前のビットにちなんで名付けられたファイルに各行(print $0)を印刷します:

答えて

3

Awkのは、このための良い解決策です。

+0

ありがとうございました.JNevill、それは私が欲しかったのとまったく同じように動作しています。 –

+0

別の問題があります。また、行番号に基づいて同じファイルを分割するのを手伝ってもらえますか?それはアンダースコアで分割された後、再び行番号で分割する必要があります。同じawkコマンドで –

+0

新しい質問をしてください – JNevill