2015-07-17

行数の多いファイル、トップ 10 を出力するワンライナー

この前、カレント・フォルダーにあるファイルで一番行数の多いファイルは何か? という話が出て、その場で書いたワンライナー。

$ wc -l * | sort -n -r | head -10

wc-l オプションを付けて、行数をカウント。

そのままじゃ、ファイル名順に並ぶので sort コマンド。-n オプションで行数を文字列じゃなく、数字として扱わせて、-r オプションで多い順にする。

最後に head コマンドで最初の 10 行を取り出した。

この方法だと、wc が出力した全てのファイルの「トータル行数」が一番上に出る。ああ、そうか。すると、トップ 9 になっちゃう。トップ 10 を出すなら、head の引数を 11 にしなくちゃいけない。

もしくは、tail コマンドを使って、一番上の行を削るかな。

$ wc -l * | sort -n -r | tail -n +2 | head -10

ワンライナー。サクッと書けるようになると楽しい。

No comments:

Post a Comment