Basierend auf dem von Ihnen angegebenen Beispiel wird dieser awk
Befehl die gewünschte Ausgabe erzeugen:
awk ' { i = index($0, "|") if (i == 0) { print "Error: line [" $0 "] does not have a \"|\" character." } else { prefix = substr($0, 1, i-1) if (++count[prefix] == 1) print } }'
Die ersten beiden Codezeilen vergewissern sich, dass jede Eingabezeile a enthält |
. Im nächsten Schritt wird die Zeichenfolge vor dem ersten |
Zeichen extrahiert (z. B. „Frage eins“). count
ist ein assoziatives Array, mit dem gezählt wird, wie oft ein Präfix erscheint. Wenn dies # 1 ist (dh der erste Auftritt), drucken Sie die Zeile aus. Andernfalls nichts drucken.