Substitua a palavra exata por outra no shell com o comando tr

5

Eu quero substituir uma palavra por outra palavra em um arquivo de texto.

arquivo.txt:

alireza fallah

meu código:

cat file.txt | tr ali ALI

mas eu entendo isso:

ALI fALLAh

substitui todos os 'a's por' A ', e' l's por 'L' e 'i's por' eu '.

existe alguma maneira de substituir apenas 'ali' por 'ALI'?

    
por Alireza Fallah 26.09.2013 / 15:21

1 resposta

7

Esta tarefa é mais fácil com o GNU sed :

$ sed -i 's/ali/ALI/' file.txt

porque tr opera em conjuntos de caracteres em vez de strings .

Para evitar substituições indesejadas ao ecoar, tente especificar a posição exata da palavra a ser substituída e ou uma expressão regular que corresponda apenas à sequência em que você está interessado:

$ printf "cali\nali\nwali\nmali.\n" | grep -E '^ali' | tr ali ALI
ALI
    
por 26.09.2013 / 15:25

Tags