일치하는 패턴에 대한 문자열 대체

일치하는 패턴에 대한 문자열 대체

170GB SQL 파일이 있습니다. AWS RDS에서 복원하려고 하는데 파일에 키링 암호화가 활성화되어 있어서 복원할 수 없습니다. 세션이 시간 초과되기 때문에 vi를 사용하여 편집할 수 없습니다.

sed 명령을 사용하여 이 작업을 수행하려고 하는데 수행할 수 없습니다.

이것은 내가 사용하는 명령이지만 문자열 값은 변경되지 않습니다.

 sed -i 's/ENCRYPTION='Y'/ENCRYPTION='N'/g'

답변1

작은따옴표로 묶인 문자열 내에서는 작은따옴표를 사용할 수 없습니다.

대신 표현식 주위에 큰따옴표를 사용하십시오 sed.

sed -i "s/ENCRYPTION='Y'/ENCRYPTION='N'/g"

이것이 마술처럼 귀하의 데이터를 해독할지는 의심스럽습니다. 그러나 최소한 귀하가 원하는 방식으로 파일의 문자열을 대체할 것입니다.


ENCRYPTION=Y원래 명령을 다음으로 바꾸려고 합니다 ENCRYPTION=N(누락된 작은따옴표 참고). 이는 초기 작은따옴표가 'Y' 문자열을 끝내기 때문입니다 s/ENCRYPTION=. 그런 다음 따옴표가 없는 문자열은 Ythis 와 연결되고 작은 따옴표로 묶인 문자열이 오고 /ENCRYPTION=그 뒤에 따옴표가 없는 문자열 N과 작은 따옴표로 묶인 문자열이 옵니다 /g.

관련 정보