トップ 最新 追記   RSS 1.0 FEED  

Journal InTime


2010-01-20 (Wed) [長年日記]

_ シェルスクリプトの引数を一部加工して他のコマンドに渡す

シェルスクリプトの引数を一部だけ加工して他のコマンドに渡すには、どうすればいいだろう。

たとえば、UTF-8でパターンを受け取り、EUCのファイルをgrepで検索し、結果をUTF-8で出力するようなシェルスクリプトeucgrepを作りたいとする。

bashだったら配列を使って以下のように書けるようだ。

#!/bin/bash

declare -a options

while expr "$1" : "^-" > /dev/null ; do
    options=("${options[@]}" "$1")
    shift
done 
pattern=`echo $1 | nkf -Wexm0`
shift
grep "${options[@]}" $pattern "$@" | nkf -Ewxm0

POSIXの範囲で同じことを実現できるだろうか。

_ Developers Summit 2010

今年は、「C++0x、Ruby、ECMAScript5 言語の国際標準化について」というパネルディスカッションに参加させていただくことになった。

技術的な話が中心になると思うので、興味がある方はどうぞ。

Tags: Ruby
本日のツッコミ(全2件) [ツッコミを入れる]

_ knu [POSIXの範囲だと配列は一本しかないのできついですね。 語彙が"$@", set -- ..., shift [N..]

_ shugo [なるほどー、evalですか。]