ログインシェルを抜き出す シェルスクリプトメモ(2)

特に、ログインシェルを抜き出して何かしたいわけじゃないけど、シェルスクリプトのメモとして残しておく。


実際にやってるのは、「ファイル中の各行を指定したセパレータでトークンに分解してやって、n番目のトークンを取り出す」という処理。


PerlRuby で書いてもよいけど、もっと簡単なのが cut コマンドを使った方法。以下のようにすると、cut コマンドがコロン「:」で各行をトークンに切って、そのトークンの内の7番目を表示してくれる。

$ cut -d':' -f7 /etc/passwd


/bin/bash
/bin/bash
/bin/bash
/bin/bash


こうして取り出したログインシェルをsortで並べかえて、使われているコマンドの頻度を調べたり、

$ cut -d':' -f7 /etc/passwd | uniq -c | sort -nr
      4 /bin/bash
      2


パイプ経由で xargs ls -lに流しこんで、想定しているコマンドが存在するか、パーミッション等は大丈夫かといった点を確認したり、

$ cut -d':' -f7 /etc/passwd | xargs.exe ls -l


といったこともできる。