![SED 명령을 사용하여 여러 파일의 공백 단어를 바꾸려고 합니다. [닫기]](https://linux55.com/image/53158/SED%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%97%AC%EB%9F%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B3%B5%EB%B0%B1%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EB%B0%94%EA%BE%B8%EB%A0%A4%EA%B3%A0%20%ED%95%A9%EB%8B%88%EB%8B%A4.%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
SED 명령을 사용하여 여러 파일의 공백 단어를 바꾸고 싶습니다.
여러 디렉토리의 많은 파일에 작은따옴표가 포함된 "Danny"라는 단어가 있는데 이를 "Danny Samuel"로 변경하고 싶습니다.
새 단어에 공백이 있기 때문에 이 명령이 작동하지 않습니다.
find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
답변1
작은 따옴표 안에는 작은 따옴표가 있을 수 없습니다. '
in은 'Danny
따옴표를 닫습니다.
find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
^^ !!!!! ^ !!!!!!!!!!!! ^^
quoted quoted quoted
unquoted unquoted
써 내려 가다:
find . -type f -exec sed -i.php -e "s/'Danny'/'Danny Samuel'/g" {} +
( .php
백업 파일 확장자로서는 이는 매우 예상치 못한 일입니다.)