ファイル分割のための標準コマンドがあります-分割。
たとえば、wordsファイルを10000行のいくつかのチャンクに分割したい場合は、次のように使用できます。
split -dl 10000 words wrd
そして、wrd.01、wrd.02などの形式のいくつかのファイルを生成します。
しかし、それらのファイルに特定の拡張子を付けたいです-たとえば、wtd.01.txt、wrd.02.txtファイルを取得したいのですが。
それを行う方法はありますか?
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
.........
このようなタスクは、シェルで管理するのが最適です。 splitを使用してから、単純なループを記述してファイルの名前を変更します。例えば。
for file in wrd.*
do
mv "$file" "$file.txt"
done
wrd.01、wrd.02などのファイルの名前を変更して、拡張子がすべて.txtになるようにします。