Ab und an programmmiere ich ein Shell-Skript und versuche, dieses Skript POSIX-kompatibel zu halten.
Manchmal stoße ich auf die Situation, dass aus einer Datei oder einer Pipe (nur) bestimmte Zeilen gelesen werden sollen. Um nicht in einer großen Konstruktion aus head- und tail-Aufrufen zu enden und mehrere Blöcke gleichzeitig ausgeben zu können, habe ich einen weitgehenden Ersatz für head und tail programmiert.
Die erste Version war ein Shell-Skript, allerdings ist sie recht langsam, deswegen gibt es ein Awk-Programm, das funktional identisch, aber schneller ist.
Das Programm ist nicht schwer zu bedienen: Die Verwendung ist im Folgenden aufgeführt.
Hinweis: die Nutzung ist nur privat gestattet, es gelten die im Impressum aufgeführten Nutzungsbedingungen.
# printf " %s\n" a b c d e f g | getline 2-3,3#-6 b c e f # printf " %s\n" a b c d e f g | getline 3#-6,2-3 b c e f # printf " %s\n" a b c d e | lines 2-3,3#-4 b c c d # printf " %s\n" a b c d e | lines --unique 2-3,3#-4 b c d # printf " %s\n" a b c d e | lines --unique 2-3,3#- b c d e #