一致するパターンの文字列置換

一致するパターンの文字列置換

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

関連情報