[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:46206] Re: [Q] sed expression
下森です。
On Fri, 17 Mar 2006 17:18:38 +0900
Hiroki Kashiwazaki <reo@xxxxxxxxxxxxxxxxx> wrote:
> % BASEURI_PATTERN=`echo $BASEDIR | sed 's/\./\\\./g' | sed 's/\//\\\//g'`
>
> のようにすると
>
> sed: 1: "s/\//\\//g": bad flag in substitute command: '/'
>
> と怒られます。`` 内ではなく、普通に
>
> % echo $BASEDIR | sed 's/\./\\\./g' | sed 's/\//\\\//g'
>
> とすると意図した処理が行われるのですが、``で括ると違う挙動になるようで
> す。しかも . → \. は怒られないのに / → \/ が怒られるのが分からない。
> これについてどなたかご教授頂ければ幸いです。
``の中のときは\をエスケープするために\\にするんじゃないですかね?
% BASEURI_PATTERN=`echo $BASEDIR | sed 's/\\./\\\\\\./g' | sed 's/\\//\\\\\\//g'`
しかしsedで/を置換するときはセパレータを/以外にしたほうが見やすそうな。
sed 's#/#\\/#g'
なのかな?深く考えてません。