Dividir em dois arquivos com base em um padrão no arquivo

Dividir em dois arquivos com base em um padrão no arquivo

Eu tenho um arquivo com este conteúdo:

xyz[0]
xyz[1]
xyz[2]
xyz[3]
abc[0]
abc[1]
abc[2]

Cada valor é separado por uma nova linha. Quero separá-los em dois arquivos diferentes com base no fato de o número entre colchetes ser par ou ímpar.

Responder1

Usando o Awk, divida em caracteres [e ]depois divida o módulo do segundo campo:

$ awk -F'[][]' '{f = $2%2 ? "odd" : "even"; print > f}' file

$ head odd even
==> odd <==
xyz[1]
xyz[3]
abc[1]

==> even <==
xyz[0]
xyz[2]
abc[0]
abc[2]

informação relacionada