引用符の間のテキストを別のファイルの内容に置き換えるには?

引用符の間のテキストを別のファイルの内容に置き換えるには?

次の種類のテキストがあります。

$OU = 'or';
$DINHEIRO_CAIXA = 'Cash balance';
$PAGINA = 'Page';
$DE = 'from';
$ENVIAR = 'Send';
$PRINCIPAL = 'Main';

すべてのテキストを一重引用符で囲んで使用しました。

cat arquivo | grep -oP "'[^']+'" | tr -d "'"

抽出されたテキストはポルトガル語に翻訳されていますが、一重引用符の間にある元のテキストを翻訳されたテキストに置き換える方法がわかりません。次のようなものを探しています。

$OU = 'ou';
$DINHEIRO_CAIXA = 'Dinheiro em caixa';
$PAGINA = 'Pagina';
$DE = 'de';
$ENVIAR = 'enviar';
$PRINCIPAL = 'Principal';

ファイルの置き換え自体を試しましたが、grep -Fパターンが一致しなかったため失敗し、新しいファイルに引用符がないため、これを行う方法はありますか?

答え1

使用awk:

awk -F\' '
    { getline translate_text <"trans_file";
      print $1, translate_text, $3;
    }' OFS=\' original_file

original_file元のファイルです。trans_file翻訳されたソースファイルの形式は次のとおりです。

ou
Dinheiro em caixa
Pagina
de
enviar
Principal

関連情報