2009-07-27 176 views

回答

17

您需要使用的,而不是/一個不同的角色,例如:

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

因爲/出現在pwd輸出。

+0

非常有趣,我想知道錯誤的含義。很棒的工作 – 2017-09-27 11:31:51

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 

或只是慶典

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

我試圖做一些類似的,這有助於我... 我用它是這樣的:`project_dir = $ {current_dir/\/f1 \/f2 //}` 我想要2個文件夾的路徑。 – Shrinath 2011-10-04 09:23:08

2
在SED

,您不能使用/直接,你必須使用'/'。

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