shell のちょっとしたテクニック - odz buffer odzさんのところで単語の出現頻度を調べるためのワンライナーが紹介されている。 単語抽出についてはいくつかやり方があるので紹介する。 特に egrep -o は非常に実用的。 もちろん、この話はリンク先において主題ではない。 俺のただの自己満足。 tr -cs で単語抽出 $ tr -cs 'a-zA-Z' '\n' < ./.zshrc 上記コマンドで、a-zA-Zのみで構成される文字列を抽出できる。 -c オプションで、'a-zA-Z' の補集合(以外)を '\n' に変換し、 -s オプションで、最後の引数で指定される要素の重複を除去している。すなわち '\n' の連続を除去している。 grep -o で単語抽出 grepには、( -o、--only-matching ) オプションというのがある。 これは、指定された正
# cat ./test.txt | awk '{print length($0), $0}' | sort -nr | cut -d' ' -f2- script lessバージョン # cat ./test.txt | tr '\n' '\0' | xargs -0 -L1 expr length | \ nl -ba -nln | join - <(nl -ba -nln ./test.txt) | sort -k2nr | cut -d' ' -f3- 各行の文字数を、 xargs + expr length で調べているところがポイント。 あと、こういう場面でしか使える気がしない join コマンドも素敵。 我田引水、自画自賛。
以前に、watch コマンドという 指定されたコマンドを定期的に実行し、 フルスクリーンで表示してくれるコマンドがあるという事を書いた。 http://d.hatena.ne.jp/lurker/20060716/1153056030 実は、--differences とオプションを付加する事によって、 直前の出力結果との差分をハイライト表示してくれるらしい。 知らなかった。コレは便利だ。 正直 grep -o を知ったときぐらい感動した。 以下のように入力してみるとどうなるのかが わかっていただけると思う。 ちなみにこれは、1秒おきに、dateコマンドを実行するというもの。 $ watch -n 1 --differences date さらに、--differences=cumulative と付加すると 起動してからのすべての変更部分がハイライトされるようだ。 $ watch -n
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く