troca duas palavras usando sed

4

Estou tentando trocar duas palavras em uma linha, mas não funciona. Por exemplo: "Hoje é meu primeiro dia de universidade" deveria ser "meu é Hoje primeiro dia de universidade"

Isso é o que eu tentei:

sed 's/\([a-zA-z0-9]\)\([a-zA-z0-9]\)\([a-zA-z0-9]\)//' filename.txt

O que estou fazendo de errado?

    
por Cucerzan Rares 30.03.2013 / 11:57

1 resposta

6

Tente este:

sed -r 's/([a-zA-Z0-9]+) ([a-zA-Z0-9]+) ([a-zA-Z0-9]+)/  /'

Seu problema é que você está tentando usar o regex estendido sem a opção -r ou o símbolo de escape no comando sed.

Além disso, o regex não está totalmente correto.

Você está especificando um intervalo incorreto: não há intervalo A-z , há A-Z .

Também esqueceu de espaços e não especificou que as palavras são multicharacteres.

    
por 30.03.2013 / 12:01