많은 하위 폴더의 다양한 파일에는 큰 텍스트 파일에 다음 텍스트가 있으며 각 텍스트는 고유합니다.
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'/" {} +
관련된: