- 18 名前:名無しさん@お腹いっぱい。 [2009/04/27(月) 17:03:16 ]
- ターミナルからの'を含む置換について教えて下さい。
例えば以下のような置換を行いたいと思っています。 ---置換前--- 1 - apple 2 - orange ---置換後--- 1, 'apple' 2, 'orange' ----------- perlスクリプト上で以下のような正規表現を書いたところ動作しています。 $_ =<<DATA; 1 - apple 2 - orange DATA s/^([0-9]) - (.+)$/$1, '$2'/gm; print $_; # OK ところが、この正規表現をターミナルから実行すると動きません。'をエスケープしてもやはり動きません。 % cat test.txt | perl -ne 's/^([0-9]) - (.+)$/$1, '$2'/gm; print' # NG % cat test.txt | perl -ne 's/^([0-9]) - (.+)$/$1, \'$2\'/gm; print' # NG sedを使って見てもやはり動きません。 % cat test.txt | sed -e 's/\([0-9]\) - \(.*\)/\1, \'\2\'/gm' # NG % cat regex_test.txt | sed -e 's/\([0-9]\) - \(.*\)/\1, \2/gm' # OK ('なしだと動く) また'では無く"ですと動作しています。 % cat test.txt | perl -ne 's/^([0-9]) - (.+)$/$1, "$2"/gm; print' # OK ターミナルから'はどのようにして扱えば良いのでしょうか。
|

|