![정규식과 변수 확장이 적용되지 않을 때 sed 명령을 중첩된 부분으로 나누는 방법은 무엇입니까? [복사]](https://linux55.com/image/13839/%EC%A0%95%EA%B7%9C%EC%8B%9D%EA%B3%BC%20%EB%B3%80%EC%88%98%20%ED%99%95%EC%9E%A5%EC%9D%B4%20%EC%A0%81%EC%9A%A9%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%84%20%EB%95%8C%20sed%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%A4%91%EC%B2%A9%EB%90%9C%20%EB%B6%80%EB%B6%84%EC%9C%BC%EB%A1%9C%20%EB%82%98%EB%88%84%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
이전에 결정된 (알려진) 특정 이메일 주소를 모두 PHP 파일의 다른 이메일 주소로 바꾸고 싶습니다. sed
이는 제가 아는 가장 간단한 방법입니다.
작동합니다(이메일이 변경됨).
sed -i 's/\$to = "[email protected]"/\$to = "example_1@example_1.com"/g' FILE
그러나 텍스트에 하나의 라이너를 사용하는 것은 종종 실수라고 생각합니다. 특히 사람들이 텍스트가 "너무 길다"고 생각하는 경우에는 작동하지 않았습니다.
sed -i \
' \
-e s/
-e \$to = "[email protected]"/
-e \$to = "example_1@example_1.com"/
-e g
' \
FILE
sed: -e expression #1, char 8: unterminated address regex
정규식과 변수 확장이 적용되지 않을 때 sed 명령을 중첩된 부분으로 나누는 방법은 무엇입니까?
(즉, 연산에 정규식과 변수 확장/특수 인용 규칙이 없는 경우)
답변1
다음을 시도해 보십시오:
sed -i \
's/'\
'\$to = "[email protected]"'\
'/'\
'\$to = "[email protected]"'\
'/g'\
FILE
이전 공간을 참고하세요.FILE