따옴표 사이의 텍스트를 다른 파일의 내용으로 바꾸는 방법은 무엇입니까?

따옴표 사이의 텍스트를 다른 파일의 내용으로 바꾸는 방법은 무엇입니까?

다음과 같은 유형의 텍스트가 있습니다.

$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

관련 정보