列の内容に応じてテキストファイルを複数のファイルに分割する

列の内容に応じてテキストファイルを複数のファイルに分割する

次のファイルがあります。

1 : Aa|xxx Aa|xxx Bb|xxx Cc|xxx Cc|xxx Cc|xxx 
2 : Cc|xxx Aa|xxx Aa|xxx Aa|xxx Bb|xxx    
3 : Bb|xxx Bb|xxx Aa|xxx Cc|xxx    
4 : Bb|xxx Aa|xxx Cc|xxx    
5 : Aa|xxx Cc|xxx Bb|xxx 

名前などのxxx別々のコードを表します。Aa各行には常に3つの名前があります。

行番号(最初の列)と名前のみを含む3つのファイルが必要です。このような:

1 : Aa|xxx Aa|xxx
2 : Aa|xxx Aa|xxx Aa|xxx
3 : Aa|xxx
4 : Aa|xxx
5 : Aa|xxx

誰でもこの問題を解決するのに役立ちますか?とても嬉しかったです。よろしくお願いします!

ベストアンサー1

1つの可能な方法は、重複したコンテンツを削除することです。

perl -pe 's/ (Bb|Cc)\S*//g' file > A
perl -pe 's/ (Aa|Cc)\S*//g' file > B
perl -pe 's/ (Aa|Bb)\S*//g' file > C

(一部はsed、awkなどで行うことができます)

おすすめ記事