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]