大容量ファイルをパターンごとに2つの部分に分割する方法は?
例えばfile.txt
:
ABC
EFG
XYZ
HIJ
KNL
このファイルを分割XYZ
してfile1
。XYZ
file2
ベストアンサー1
これは仕事です。csplit
:
csplit -sf file -n 1 large_file /XYZ/
s
ファイルを自動的に分割してプレフィックス付きのセグメントを作成し、同じ単一のf
数字file
でn
番号を付けます。file0
を使用すると、/regex/
一致する行に分割されますが、含まれませんregex
。次に分割そしてregex
オフセットを追加して一致する線を含めます+1
。
csplit -sf file -n 1 large_file /XYZ/+1
これにより、2つのファイルが作成されます。 名前を指定する必要がある場合は、いつでもコマンドに空のパターンを追加してfile0
最初のファイルを削除できます。file1
file1
file2
csplit
csplit -sf file -n 1 large_file // /XYZ/+1
が作成されましたが空ですfile0
ので、安全に削除できます。file1
file2
file0
rm -f file0