それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

splitで指定した行数でファイルを分割し拡張子も付与するsplitコマンドの基本的な使い方

split コマンド便利ですよね

split コマンドは、ファイルを分割するコマンドです。

一度くらいは見たことが在るんじゃないでしょうか。

split コマンドでファイルを分割する

ファイルを分割してもアルファベットのよく分からないファイル名になるので、よく使う方法をご紹介。

ただ split コマンドを実行すると次のようなファイルになってしまう。

xaa
xab
xac

行で分割する

バイトで分割しても現代ではあまり役に立たないので、 -l をつけて行数で分割する

split -l 100 input.log

行数で分割すると便利ですよね。

-d をつける

split 対象ファイル -d 出力ファイル

こうすると、ファイル名が 0始まりの数字で分割される

split  input.log  -l  -d out-

出てくるファイル

out-0
out-1

拡張子を付ける --additional-suffix=.csv

extensions つまり、拡張子を付けないとあとで識別が不便なので、拡張子もつけておく。

takuya@work$ split -l 400 entries.csv -d  --additional-suffix=.csv  entries-
takuya@work$ ls en*
entries-00.csv  entries-01.csv  entries-02.csv  entries.csv

まとめて関数にしても良いかも

元のファイルと同じ拡張子で、デフォルト100行くらいで分割する自分専用のコマンドを作っておいても良いかもしれない。

bashでちょっとしたコマンド作成の練習には良いかもね。

参考資料

  • man split