SED 명령을 사용하여 여러 파일의 공백 단어를 바꾸려고 합니다. [닫기]

SED 명령을 사용하여 여러 파일의 공백 단어를 바꾸려고 합니다. [닫기]

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백업 파일 확장자로서는 이는 매우 예상치 못한 일입니다.)

관련 정보