匹配模式的字符串替换

匹配模式的字符串替换

我有一个 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=YENCRYPTION=N(注意缺少的单引号)。这是因为最初的单引号'Y' 结束了字符串s/ENCRYPTION=。然后,将未加引号的字符串Y与 this 后跟单引号字符串连接起来/ENCRYPTION=,后跟未加引号的字符串N和单引号字符串/g

相关内容