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

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

次の内容を含むCAMS.txtというテキストファイルがあります。

4153999999999991
4153999999999992
4153999999999993
4153999999999994
4801999999999991
4801999999999992
4801999999999993

CAMS.txt ファイルを CAMS1.txt と CAMS2.txt という 2 つのファイルに分割したいと思います。その内容は次のとおりです。

CAMS1.txt

4153999999999991
4153999999999992
4153999999999993
4153999999999994

CAMS2.txt

4801999999999991
4801999999999992
4801999999999993

実際、元のCAMS.txtファイルの最初の4桁に基づいてファイルを分割します。常に4153と4801です。私はUNIXの世界に初めて触れました=)

ベストアンサー1

awk '/^4153/ {print >"CAMS1.TXT"; next} {print >"CAMS2.TXT"}' CAMS.TXT

これを行う他の方法があります。別の方法は、2つのgrepコマンドを使用することです。

grep "^4153" CAMS.TXT > CAMS1.TXT
grep -v "^4153" CAMS.TXT > CAMS2.TXT

これはあまり効率的ではありませんが、入力が簡単で、最初のgrepが完了したら、シェル履歴で(「上」矢印キーを使用して)これを呼び出していくつかの変更を行うことができます。もちろん、ファイルを2回読み取るので、ファイルが大きい場合はこれをしないでください。

おすすめ記事