ファイルを行ごとに分割し、結果のファイル拡張子を制御します。

ファイルを行ごとに分割し、結果のファイル拡張子を制御します。

ファイルを分割するための標準コマンドがありますsplit

wordsたとえば、ファイルを10000行単位に分割するには、次のようにします。

split -dl 10000 words wrd

wrd.01などの形式で複数のファイルを生成しますwrd.02

wtd.01.txtしかし、これらのファイルに特定の拡張子を割り当てたいと思います。たとえば、ファイルをインポートしたいと思いますwrd.02.txt

それを行う方法はありますか?

答え1

もっとgnu split最近バージョン(≥ 8.16)、--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
.........

答え2

これらの操作はシェルを使用して最もよく管理されます。分割を使用して、単純なループを作成してファイルの名前を変更します。例えば

for file in wrd.*
do
    mv "$file" "$file.txt"
done

wrd.01、wrd.02などのファイル名がすべて.txt拡張子を持つように変更されます。

答え3

使用しませんが、split後で簡単に名前を変更できます。または、以下でこれを行うことができますawk

awk '{filename = "wrd." int((NR-1)/10000) ".txt"; print >> filename}' inputfile

関連情報