Linuxコマンドでファイルの桁数を取得する方法

Linuxコマンドでファイルの桁数を取得する方法

 

LInuxコマンドで、閲覧したいファイルの桁数を取得する方法を知らなかったのでメモ。

ファイルは前回のgrepコマンドの時に作成したテキストファイルを利用しましょう。

wc -l sample.txt

んで、実行した結果がこちら。

4 sample.txt

無事、参照したテキストファイルの桁数は4桁だということが取得できましたー

 

さてさて、

これをPHPを書いている時に、Linuxコマンドを使って、ファイルの桁数を取得しろってことがあるかもしれません。(実際に最近のタスクでありました。)

 

参照するファイルが何100万件もある桁数の場合、

PHPで桁数を取得しようとループを回していると、めちゃくちゃ時間がかかるんですね。(もちろん実際のタスクは桁数を取得するだけではなく、いろいろな判定なども実装します。)

 

なので、最近、紹介しているような感じで、PHPを使わずにLinuxコマンドでやっちゃいましょというような指令なわけです。

 

話がそれましたが、それではPHPからこのLinuxコマンドを実行し、

桁数を取得してみましょう!

 

$cmd = sprintf(
            "wc -l %s",
            "sample.text"
        );

$result = exec($cmd);

はい、LinuxコマンドをPHPから実行する方法はもうOKですね?

わからない人は、PHPでコマンドラインを実行する2つの方法の記事をご参考にどぞ。

んで、取得した結果は

4 sample.txt

なので、空白以降の文字列が不要なので、

空白で文字列を分割しちゃって、最初の4だけ取得しちゃいましょう。

なので、桁数だけを取り出すのはこんな感じで書きます。

$total = explode(' ', $result)[0];

 

まあ、こんな感じで書きましたけど、今回はwcコマンドを覚えられたらそれでOKですかね?

 

普段PHPとかで書いていることは、Linuxコマンドでもだいたい再現できるんですね〜

LinuxコマンドはPHPよりも爆速なんで。

ぜひお試しあれ。