火曜日, 6月 04, 2013

UNIXコマンド One liner 1

UNIXシェルは奥深い

UNIXシェルの奥の深さは底知れない.あなたがもし何かの処理の為のスモールプログラムを書くつもりならば,UNIXシェルだけで95%のことは出来る,ということをまず考えたほうが良い.何十行のプログラムやスクリプトでできることはシェルの一行でできるはずだ.

一行で色々やってみる

以下は一行で色々やってみたという参考例.実際に私の仕事のうち,データ解析,大量のファイルデータ処理等はR/SQL/スクリプトを書く以前に,大概ワンライナーシェルスクリプトの組み合わせである程度まで出来る.

特定のファイルのサイズ総計を表示

find *Neko*|xargs ls -al|gawk '{s+=$5} END {print s}'

全ての.txtファイルのサイズが大きい順トップ10のファイル名とサイズを表示

find **/*.txt|xargs ls -alSr|awk '{print $9,$5}'|tail -10

全ての.txtファイルのサイズが小さい順トップ10のファイル名とサイズを表示

find **/*.txt|xargs ls -alSr|awk '{print $9,$5}'|head -10

又は

find **/*.txt|xargs ls -alS|awk '{print $9,$5}'|tail -10

あるgzipされたファイルの,パイプで区切られたデータの4行目の内容を使ってソート,多かったデータの上位5件を表示

zcat data.txt.tar.gz|cut -f4 -d"|"|uniq -c|sort -nr|head -5


0 件のコメント: