Como mover linhas entre padrões até o final de um arquivo

0

Eu quero mover várias linhas para o final do arquivo.

Exemplo:

1
2
3
4
5
6 blkn XYZ indf
7
8
9
10
11 lnkn ABCYDF knnfd
12
13
14
15

Eu quero mover as linhas de 6 a 11 para o final do arquivo. Os padrões são XYZ para a linha inicial e ABC* para a última linha.

Eu já consegui copiá-los via awk '/XYZ/,/ABC*/ {print}' file >> file para o final do arquivo.

Eu não sei como mover essas linhas até o fim, talvez alguns de vocês tenham uma solução elegante para isso.

    
por quizzmaster 31.05.2016 / 14:25

1 resposta

2

Você já está bem perto disso. Basta salvar as linhas em alguma variável e usar uma regra END para imprimi-la:

/XYZ/, /ABC.*/ { result = result $0 RS; next }
{print}
END { print result }
    
por 31.05.2016 / 14:34