回答:
ではなく、split後で簡単に名前を変更するか、次のように変更できますawk。
awk '{filename = "wrd." int((NR-1)/10000) ".txt"; print >> filename}' inputfile
これは当時は使用できませんでしたが、最新バージョン(≥ 8.16)gnu splitでは--additional-suffixスイッチを使用して、結果の拡張機能を制御できます。からman split:
--additional-suffix=SUFFIX
append an additional SUFFIX to file names.
そのため、そのオプションを使用する場合:
split -dl 10000 --additional-suffix=.txt words wrd
結果の断片は自動的に終了し.txtます:
wrd00.txt
wrd01.txt
.........
gnu split、の一部に関するものですgnu coreutils。OSXでもインストールできますcoreutils経由でhomebrewはなく、ノートデフォルトでは、OSX上で、というgnuユーティリティがしているg(例えば自分の名前の前に追加gstatの代わりstat)としてそれボークますのでgsplit(またはガイドに従ってPATHを変更し、ここであなたがしたい場合splitOSX上で使用する場合split)。HTH。
gsplitして数値のサフィックス(-d)を取得します。
このようなタスクは、シェルで管理するのが最適です。splitを使用し、単純なループを作成してファイルの名前を変更します。例えば
for file in wrd.*
do
mv "$file" "$file.txt"
done
wrd.01、wrd.02などのファイルの名前を変更して、すべての拡張子が.txtになるようにします。
split+mvコンボは1000万行の入力ファイル(75 MB)の場合(約3 秒対18秒)よりも6倍以上高速です...各行のテキストは独自の行番号でした... 「明白な」:)awk
split + mvである75倍速くよりawk:存在する場合には100倍以上のファイルが、split + mvある1.5倍速くよりawk。だから、私にとっては、このsplit + mv方法が勝ちです。それは簡潔なものであり(ほぼ間違いなく)、よりも高速ですawk。
for file in wrd.*; do mv "$file" "$file.txt"; done:)