パターンマッチングとラインマッチングを使ってファイルを分割する方法を見たことがありますが、私が望むものは次のとおりです。シナリオは次のとおりです。ファイルがあるとしましょう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
?
最初の列の値がどうなるか実際に事前に知ることができる方法がないため、split
orのようなものは使用できませんcut
。あなたの助けに事前に感謝の言葉を伝えたいと思います!
ベストアンサー1
努力する:
awk -F\| '{print>$1}' file1
これにより、最初の列の名前を付けたファイルに各行が書き込まれます。
仕組み:
-F\|
フィールド区切り記号をに設定します|
。print>$1
現在の行をfirst fieldというファイルに印刷します。