Usando "sed" para encontrar e substituir uma string não atípica

1

Eu preciso usar sed no terminal (nenhuma outra opção, infelizmente) e preciso encontrar e substituir todas as sequências de quatro ou mais dígitos (sem espaços em branco) por uma palavra específica "brad". Eu tentei e tentei entender o manual, mas é tão ruim assim.

Como faço isso? E enquanto eu estou procurando o comando exato, eu apreciaria uma explicação do porquê ele funciona da maneira que faz (o comando exato usado aqui é o seguinte).

    
por Kalec 16.03.2012 / 11:23

1 resposta

2

Um caminho:

sed 's/[0-9]\{4,\}/brad/g' infile

Explicação:

s/regex/replacement/flags
[0-9]              # Any digit.
\{4,\}             # Matched more or equal to 4 times.
brad               # Substitute matched string with literal 'brad'
/g                 # Apply it globally: Many times for each line.
    
por Birei 16.03.2012 / 11:36