다음과 같은 유형의 텍스트가 있습니다.
$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