Substitua várias strings por um conjunto diferente de strings mapeadas [duplicado]

3

Eu quero substituir vários padrões de string por um conjunto diferente de strings predefinidas.

Por exemplo:

Entrada:

This sentence will be converted to something different. This sentence can contain same words.

Saída:

These words need to be replaced with something different. These words can contain same alphabets. 

Então, aqui eu quero converter abaixo do padrão.

  • Isto = > Estes
  • frase = > palavra
  • vai = > precisa
  • convertido = > substituído
  • para = > com
  • palavras = > alfabetos

Deixe-me saber se isso pode ser feito.

    
por user3249008 13.11.2017 / 20:20

1 resposta

2

Se os dados estiverem no arquivo data.txt (por exemplo), você poderá usar sed dentro de um loop for. Talvez algo assim:

replacements=(
    This:These
    sentence:word
    will:need to
    converted:repalced
    to:with
    words:alphabets
)

for row in "${replacements[@]}"; do
    original="$(echo $row | cut -d: -f1)";
    new="$(echo $row | cut -d: -f2)";
    sed -i -e "s/${original}/${new}/g" data.txt;
done
    
por 13.11.2017 / 20:32

Tags