trocando palavras com awk em torno de um símbolo / texto (“to”)

3

Eu tenho um arquivo que, por exemplo, diz:

Aa Bb C Y... "TO" Bb
Cc Z J >> sd "TO" Dd
Ee Z H S DFF "TO" Ff

Mas eu quero assim:

Bb "TO" Aa Bb C Y... 
Dd "TO" Cc Z J >> sd 
Ff "TO" Ee Z H S DFF

Então eu posso trocar os textos pelo "TO" ...

    
por Finn H. 07.12.2016 / 15:31

2 respostas

2

tente:

awk -F" \"TO\" " '{print $2 " \"TO\" " $1}' yourfile
    
por 07.12.2016 / 16:02
2

Eu faria:

awk -F ' "TO" ' '{print $2 FS $1}'

-F define o separador de campo ( FS variable). Isso pressupõe que as linhas tenham apenas uma ocorrência de "TO" e que ele esteja cercado por espaços.

Com perl , você poderia ter mais controle como:

perl -Mopen=locale -lpe 's/^(.*?)(\h*)("TO")(\h*)(.*)$/$5$4$3$2$1/'

para mover os espaços em branco ao redor do "TO" ao redor.

    
por 07.12.2016 / 16:27