2009-07-27 4 views

答えて

17

あなたは例えば、代わりに/の異なる文字を使用する必要があります。:

sed 's?#REPLACE-WITH-PATH?'`pwd`'?' 

/pwd出力に表示されますので。

+0

非常に興味深い、私はエラーが何を意味したのだろうかと思っていた。私は2つのフォルダまでのパスを望んでいた 'project_dir = $ {current_dir/\/F1 \/F2 //}' :素晴らしい仕事、私はやや似てやろうとした –

1
sed 's:#REPLACE-WITH-PATH:'`pwd`':' config.ini 

問題は、pwdの出力を正しくエスケープすることです。幸いなことに、VIMのように、異なる区切り文字を使用してサポートしてsedの。この場合には、区切り文字としてコロンの代わりにスラッシュを使用してエスケープ問題を回避します。

1

代わりにそのような引用符で手探りで、あなたはこの

#!/bin/bash 
p=`pwd` 
# pass the variable p to awk 
awk -v p="$p" '$0~p{ gsub("REPLACE-WITH-PATH",p) }1' file >temp 
mv temp file 

またはちょうどbashのSEDで

p=`pwd` 
while read line 
do 
    line=${line/REPLACE-WITH-PATH/$p} 
    echo $line  
done <file> temp 
mv temp file 
+0

、これは私がこのようにそれを使用 ...私を助けました。 – Shrinath

2

のようにそれを行うことができ、あなたは/直接使用することはできません、あなたが使用する必要があります。 '/'。

#!/bin/bash 
    dir=$`pwd`/ 
    ls -1 | sed "s/^/${dir//\//\\/}/g"