2014-11-20 5 views
1

리눅스에서 스크립트를 사용하여 파일의 문자열을 바꾸려고합니다.bash를 사용하여 텍스트 파일의 문자열 바꾸기

이 게시물을 읽고 나면 : Find and Replace Inside a Text File from a Bash Command

나는 다음 줄

perl -pi -e "s/myparam/$MY_VAR/g" /res/raw/configuration.xml 

을 사용 그러나 문제는 MY_VAR URL을 포함 /을 포함 (https://stackoverflow.com/questions/ask 같은)이고, 그렇지 않습니다 문자열을 대체합니다.

나는 모든 /을 찾고 대체하는 스크립트를 작성할 필요가없는 것으로 가정하고이를 해결하는 간단한 방법이 있습니다.

감사

이가 대체 구분에 나오지도 사용할 수 있습니다

답변

1
perl -pi -e 's/myparam/$ENV{MY_VAR}/g' /res/raw/configuration.xml 

또는 대신 명령 행에서 $MY_VAR를 넣어 perl one 라이너로 보간하면,

perl -pi -e 'BEGIN{$s = shift} s/myparam/$s/g' $MY_VAR /res/raw/configuration.xml 
+0

'$ ENV {MY_VAR}'은 쉘 변수를 사용하는 자연스러운 방법입니다. – TLP

+0

주석을 위해 @TLP tnx. –

1

: 또한 같은 수 있습니다

sed -i.bak "s~myparam~$MY_VAR~g" /res/raw/configuration.xml 

Perl

그렇게 사용

perl -pi -e "s~myparam~$MY_VAR~g" /res/raw/configuration.xml 
+0

Perl에서 다른 구분 기호를 사용할 수도 있습니다. – Barmar

+0

예, 답변을 추가하기 전에 먼저 확인했습니다. 감사. – anubhava

관련 문제