tcsh……
SED Lecture を読んで、sed は grep の代わりになるのか、と思いつつ tcsh 上で試してみたんだけど
sed '/hoge/!d' file
と打ったら、
d: イベントが見つかりません
とか、
sed: -e 表現 #1, 文字数 10: extra characters after command
といったエラーがでる。これはどうもシングルクオートで囲っているにも関わらず、tcsh が !d を最近打った d から始まるコマンドに置き換えようとするためのようだ。最近 d で始まるコマンドを打っていないと「イベントが見つかりません」と tcsh がエラーを出す。d で始まるコマンド、例えば date とかを打っていると tcsh が '/hoge/date' などというコマンドを sed に渡してしまうため、 sed が「extra characters after command」とエラーを出す。ということらしいので、まともに動かすには、エスケープする必要がある。
sed '/hoge/\!d' file
なんていうお茶目なところのある tcsh を anarchy golf に推薦してみたいと思います。関数が作れないところもちょいマゾでいいかも。