2014-07-08 3 views
1

으로 바꿉니다. 절대 경로 문자열 톤 및 톤이 xml 파일 (예 : /home/matt/somefolder/somefile.c)입니다. 나는 그들 모두를 상대 주소 (./somefile.c)로 바꾸고 싶다. 내 스크립트는 다음과 같습니다과 트릭을 수행해야합니다 경로 문자열파일의 모든 경로 문자열을 sed

tmp=`pwd` 
cat a.xml | sed 's/$tmp/.' > a.xml 

답변

0

이를 교체하지 않는 것 : 큰 따옴표가 $tmp가 대체되어 있는지 확인하는

tmp=$(pwd) 
sed "s#$tmp#.#" a.xml > a2.xml 

참고. 그리고 경로에 슬래시가 포함되어 있기 때문에 sed에 다른 문자 (이 경우 #)를 사용하는 것이 좋습니다.

+1

이것은 다시 작성해야합니다. # 1,'sed'와 같은 데이터 자체를 읽을 수있는 프로그램과 함께'cat'을 사용하지 마십시오. # 2. 오래되고 구식이 아닌 괄호를 사용하지 마십시오. 그러면 다음과 같을 것입니다 :'tmp = $ (pwd)'와'sed 's # $ tmp #. ""a.xml> a2.xml' – Jotne

+0

안녕하십니까. 나는 내 대답을 당신의 제안으로 업데이트했다. –

관련 문제