2016-05-10 16 views
1

大文字のテキストファイルを、同じ量の行と数字の接尾辞を持つ小さなファイルに分割したい。私は、このように分割コマンドを使用することができます知っている:テキストファイルを数値接尾辞付きで0個の接頭辞なしのファイルに分割する方法

split -d -l 2000 myBigFile.txt 

しかし、このコマンドは1から開始していないと接尾辞には0のプレフィックス、すなわち、など私がfile.1, file.2, ..., file.10, ...たい、file.00, file.01のようなものが生成されます。

関連する質問:各ファイルの行数を指定する代わりに、splitコマンドを使用して出力ファイルの数を指定できますか?ファイルごとの行数は自動的に計算されますか?

どうすればいいですか? GNUスプリット付き

+0

なぜそれが欲しいですか?あなたがファイルを 'ls'したり、それらを' cat'すると、それらは順不同になります( 'file.1'、' file.10'、 'file.2'など)。それで、詰め込まれたゼロがあるのです。 – Evert

+0

関連する質問: 'man'ページを読む:' -n、--number = CHUNKSはCHUNKS出力ファイルを生成するCHUNKSは次のようなものです:N入力ファイルのサイズに基づいてN個のファイルに分割N/。 – Evert

+0

私はあなたが数字0を避けることができないのか分かりません。 'csplit -k -n 1 -f fileを使用してください。あなたの大きなファイルが最大10個のユニットを持つ場合、myBigfile.txtファイル2000 '{9}' 'が動作するかもしれませんが、' -n 1'(Mac OS X上)は 'file.10'が必要なときにファイルの生成を止めます。最大100まで、 '-n 2'を使うことができますが、それは最初の10個のファイルに先行ゼロを与えます。そして、それでもあなたに 'file.00'を与えて、最初の出力ファイルには別のファイルがあります。満足のいく答えではありません。 –

答えて

0

あなたの代わりに-d

--numeric-suffixes=1 

のこのオプションを使用して開始インデックスを指定することができますが、それはまだゼロでパディングされます。

+0

'-a 1'や' --suffix-length = 1'は出力にファイル1〜9しかない限りGNU 'split'で動作します。それ以外の場合は、01,02などを主張します。名前を変更する操作が必要かもしれないと思います:Perlベースの名前の変更が可能です - 'rename 's/\。0 + /。/' file.0?' –

関連する問題