2009-07-27 5 views

답변

17

당신은 대신 /의 다른 문자를 사용하는 예를 : 필요

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

/pwd 출력에 나타납니다 때문이다.

+0

매우 흥미 롭습니다. 오류의 의미가 궁금합니다. 위대한 직업 –

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

나는 다소 비슷한 것을 시도했다. 이것은 나를 도왔다 ... 나는 이것을 다음과 같이 사용했다 :'project_dir = $ {current_dir/\/f1 \/f2 //}' 나는 2 개의 폴더에 대한 경로를 원했다. . – Shrinath

2

처럼 그것을 할 수 있습니다, 당신은/직접 사용할 수 없습니다, 당신은 사용해야합니다 '/'.

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