Dividir en dos archivos según un patrón en el archivo

Dividir en dos archivos según un patrón en el archivo

Tengo un archivo con este contenido:

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

Cada valor está separado por una nueva línea. Quiero separarlos en dos archivos diferentes según si el número entre corchetes es par o impar.

Respuesta1

Usando Awk, divida en caracteres [y ]luego divida en módulo el 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]

información relacionada