最初の列の値に基づいて1つのファイルを複数のファイルに分割します。

最初の列の値に基づいて1つのファイルを複数のファイルに分割します。

パターンマッチングとラインマッチングを使ってファイルを分割する方法を見たことがありますが、私が望むものは次のとおりです。シナリオは次のとおりです。ファイルがあるとしましょうfile1

A.B|100|20
A.B|101|20
A.X|101|30
A.X|1000|20
B.Y|1|1

このファイルを最初の列に基づいて3つの異なるファイルに分割したいと思います。ここで、最初のファイルはA.B最初の列に含まれるすべての行になり、2番目のファイルにはすべての行が含まれている必要がありますA.X

最初の列が変更された場合それでも、この行に対して新しいファイルを作成する必要があります。bash またはを使用してこれを行う方法はありますかawk

最初の列の値がどうなるか実際に事前に知ることができる方法がないため、splitorのようなものは使用できませんcut。あなたの助けに事前に感謝の言葉を伝えたいと思います!

ベストアンサー1

努力する:

awk -F\| '{print>$1}' file1

これにより、最初の列の名前を付けたファイルに各行が書き込まれます。

仕組み:

  • -F\|フィールド区切り記号をに設定します|

  • print>$1現在の行をfirst fieldというファイルに印刷します。

おすすめ記事