bash は万能(苦笑)
2008.07.18
前回の続きです。
けどぉ、bash だとDBにアクセスしたりとか、HTTP でアクセスしたりとか、面倒じゃないのかなぁ....言語サポートのあるスクリプト言語の方がいいのでは?
とお考えの諸兄姉に。それは間違いです!
たとえば、DBアクセスだと(PostgreSQL&Cygwinの場合)
/cygwin/c/Program\ Files/PostgresSQL/8.1/bin/psql -U postgres -c 'select name from sometable where somecond=true' dbname | tail +3 | tac | tail +3 | tac
という感じで、-c オプションでコマンドをPostgreSQLのフロントエンドに渡して実行させればOKです。結果はカラム名とか結果行数とかスクリプト的には余計なものが入りますから、
- tail +3
- 先頭から3行を無視
- tac
- 入力を行単位で逆転
のフィルターを使えば、本当に欲しい結果行だけをコマンドライン的に得られます。
また、HTTP でアクセスできるネット上の情報ならば
/usr/bin/wget -O - http://some.url/ 2>/dev/null | grep someMark
の要領で、wget を使えばよろしい。-O オプションで出力ファイルを指定するけども、これは「-」指定すれば標準出力になります(これよくあるパターンです)。wget は取得状況ログが標準エラー出力に出ますが、これはウルサイだけなので、/dev/null にリダイレクトして黙らせます。あとはこれでパイプラインで何とでも加工すればよろしい。
...という具合に、本当は bash +標準UNIX環境というのは、極めてプログラマ・フレンドリな環境なのです。
すべてのテキストはパイプラインに流せて、好きなように加工してよろしい!
というのが、そもそもの「UNIX 思想」なのですよ。その枠組みを提供するのがシェルですし、特に bash と言えば「プログラムできるシェル」として、長きに渡って実績のあるものなのです.....シェルを使いましょうね!
投稿者 : 杉浦 こずえ | 投稿日時 : 2008.07.18 18:47
あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。





