sed를 사용하여 패턴을 개별적으로 변경하지 않고 SAS 파일 내에서 패턴을 찾아서 바꾸고 있습니다. 문제는 매크로 변수를 바꾸려고하는데 앰퍼샌드를 사용할 때 올바르게 처리되지 않습니다.
Here's my code:
sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas
이 명령을 실행할 때마다 원본 텍스트로 모든 종류의 펑키 한 것들을 추가하고 수행하는 것처럼 보입니다.
질문 : 앰퍼샌드가 포함 된 텍스트를 sed 명령으로 바꾸려면 어떻게합니까?
예, 오른쪽의 '&'는 기본적으로 "왼쪽에 일치하는 모든 것"을 의미하므로 '\'로 이스케이프하십시오. 당신은 단지 의견이 아니라 그 대답을해야합니다.
—
Edward Falk
나는 첫 번째 기간을 탈출 할 필요가 없었습니다 ... 다른 사람의 머리 만 궁금해했습니다 :)
—
lucasdavis500
&
특수 문자이므로 RHS에서 사용될 때's/user=&uid./user=\&sysuserid./g'
이스케이프 처리해야합니다. 실제 문자가 필요하므로 LHS에서 점을 이스케이프해야 문자 그대로 일치해야합니다's/user=&uid\./user=\&sysuserid./g'