私はこのような何かやろうとしている:私はエラーが出ていることを、残念ながらどのように私はpwd`は `の結果にトークンを置き換えますか?
sed 's/#REPLACE-WITH-PATH/'`pwd`'/'
を:
sed: -e expression #1, char 23: unknown option to `s'
は、なぜこれが起こるのでしょうか?
私はこのような何かやろうとしている:私はエラーが出ていることを、残念ながらどのように私はpwd`は `の結果にトークンを置き換えますか?
sed 's/#REPLACE-WITH-PATH/'`pwd`'/'
を:
sed: -e expression #1, char 23: unknown option to `s'
は、なぜこれが起こるのでしょうか?
あなたは例えば、代わりに/
の異なる文字を使用する必要があります。:
sed 's?#REPLACE-WITH-PATH?'`pwd`'?'
/
がpwd
出力に表示されますので。
sed 's:#REPLACE-WITH-PATH:'`pwd`':' config.ini
問題は、pwd
の出力を正しくエスケープすることです。幸いなことに、VIMのように、異なる区切り文字を使用してサポートしてsedの。この場合には、区切り文字としてコロンの代わりにスラッシュを使用してエスケープ問題を回避します。
代わりにそのような引用符で手探りで、あなたはこの
#!/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
、これは私がこのようにそれを使用 ...私を助けました。 – Shrinath
のようにそれを行うことができ、あなたは/直接使用することはできません、あなたが使用する必要があります。 '/'。
#!/bin/bash
dir=$`pwd`/
ls -1 | sed "s/^/${dir//\//\\/}/g"
非常に興味深い、私はエラーが何を意味したのだろうかと思っていた。私は2つのフォルダまでのパスを望んでいた 'project_dir = $ {current_dir/\/F1 \/F2 //}' :素晴らしい仕事、私はやや似てやろうとした –