Text-Processing

如何用另一個文件中的內容替換引號之間的文本?

  • October 2, 2020

我有以下類型的文字:

$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它來替換文件本身,但它失敗了,因為模式不匹配,因為我在新文件上沒有引號,有沒有辦法做到這一點?

使用awk

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

original_file是您的原始文件;trans_file是您翻譯的 original_file 格式如下:

ou
Dinheiro em caixa
Pagina
de
enviar
Principal

引用自:https://unix.stackexchange.com/questions/612557