Aufteilung in zwei Dateien basierend auf einem Muster in der Datei

Aufteilung in zwei Dateien basierend auf einem Muster in der Datei

Ich habe eine Datei mit diesem Inhalt:

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

Jeder Wert wird durch eine neue Zeile getrennt. Ich möchte sie in zwei verschiedene Dateien aufteilen, je nachdem, ob die Zahl in eckigen Klammern gerade oder ungerade ist.

Antwort1

Teilen Sie mit Awk die Zeichen auf [und ]dividieren Sie anschließend das zweite Feld modulo:

$ 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]

verwandte Informationen