とてもとても、基本的なことなのに5分ほど悩んでしまった。恥ずかしいついでに晒しあげ。
とあるプログラムがシングルクォート(')をバックスラッシュ(\)付で出力するのだが、これを取り除きたいと思った。だもんで、perlなら
s/\\'/'/g;
とこうすれば出来るなーと頭で思いつつ、これをそのままワンライナーで実行してもバックスラッシュは付いたままになる。シェルがバックスラッシュを解釈しないように、さらにバックスラッシュを付けてエスケープしないと駄目ですよね。いやーまいったまいった。
$ ./hogehoge | perl -ple "s/\\'/'/g" \'hoge\' $ ./hogehoge | perl -ple "/\\\\'/'/g" 'hoge'