문자열 "ABC"를 ". $ VAR"로 바꾸려고합니다. 아래 명령을 실행하십시오.모든 파일에서 문자열을 변수로 바꾸기
perl -p -i -e "s/ABC/\.\$VAR\./g" *
이렇게하면 문자열이 ". $ VAR"대신 ".."로 표시됩니다. 누구나 내가 뭘 잘못 말하고 있는지 알려주시겠습니까 ??
문자열 "ABC"를 ". $ VAR"로 바꾸려고합니다. 아래 명령을 실행하십시오.모든 파일에서 문자열을 변수로 바꾸기
perl -p -i -e "s/ABC/\.\$VAR\./g" *
이렇게하면 문자열이 ". $ VAR"대신 ".."로 표시됩니다. 누구나 내가 뭘 잘못 말하고 있는지 알려주시겠습니까 ??
perl -i -pe 's/ABC/.\$VAR\./g' *
그렇지 않은 : 그것은
를 사용하여 작은 따옴표를 보간하지 않는 쉘 있도록 몸 주위에 작은 따옴표를 사용하십시오 패턴이 아니기 때문에 측면을 대체에 , 당신은 쉘에서만 $ VAR을 빠져 나갑니다. 펄 수준이 아닙니다. 큰 따옴표를 사용하려면 3 개의 백 슬래시를 사용해야합니다.
perl -i -pe "s/ABC/.\\\$VAR\./g" *
대 .. 고맙습니다 .. (Y) – user2013387
펄 변수는 셸 변수와 함께 $
으로 시작합니다. $VAR
앞에 정확하게 \
을 삽입했으나 Perl 수준이 아닌 셸 수준에서 변수가 확장되지 않습니다. 더 많은 백 슬래시를 추가하거나 작은 따옴표로 전환하십시오. [정보에 대한
perl -i~ -pe "s/ABC/.\\\$VAR./g" *
또는
perl -i~ -pe 's/ABC/.\$VAR./g' *
감사합니다 :) – user2013387