'(작은따옴표)에 포함된 콘텐츠 검색 및 바꾸기

'(작은따옴표)에 포함된 콘텐츠 검색 및 바꾸기

많은 하위 폴더의 다양한 파일에는 큰 텍스트 파일에 다음 텍스트가 있으며 각 텍스트는 고유합니다.

Linux.Secret = 'XYZZYXZYXZYXZYXZYXZ'

Linux.Secret = ''다 똑같 았으면 좋겠어Linux.Secret = 'NEWSECRET'

어떻게 해야 하나요?

답변1

Linux.Secret =먼저 줄 시작 부분에서 다음 내용을 포함하는 모든 파일을 찾습니다.

find . -type f -exec grep -q '^Linux.Secret =' {} ';'

아무 것도 출력되지 않으며 grep -q표현식이 일치할 수 있는지 여부에 따라 상태로 종료됩니다.

그런 다음 이러한 테스트를 통과한 모든 파일(일반 파일이고 해당 텍스트를 포함함)에 대해 간단한(GNU) sed명령을 실행합니다.

find . -type f -exec grep -q '^Linux.Secret =' {} ';' \
    -exec sed -i "s/^Linux.Secret =.*/Linux.Secret = 'NewSecret'/" {} +

전체 줄을 원하는 줄로 바꾸면 파일 내에서 변경할 수 있습니다. 작은따옴표가 필요한 표현식 주위에 큰따옴표를 사용하여 작은따옴표를 처리합니다.

일치에 더욱 주의를 기울여야 하고 Linux.Secrets =뒤에 작은따옴표가 오는 항목만 일치해야 하는 경우:

find . -type f -exec grep -E -q "^Linux.Secret = '[^']+'" {} ';' \
    -exec sed -E -i "s/^Linux.Secret = '[^']+'.*/Linux.Secret = 'NEWSECRET'/" {} +

관련된:

관련 정보