perlで正規表現を使って置換をする時、エスケープは問題無いはずなのにエラーが出る場合はシングルクオーテーションで囲んでみる

つまり、

perl -p -i -e s/APXS2=\$\(shell which apxs2\)/APXS2=\/usr\/sbin\/apxs/g Makefile

ではだめ。

perl -p -i -e ’s/APXS2=\$\(shell which apxs2\)/APXS2=\/usr\/sbin\/apxs/g’ Makefile

こうすれば動く。
スペースが問題っぽい。

コメントを書く