AWK Programmierung. bin am durchdrehen

Hallo,

ich habe jetzt angefangen in AWK zu programmieren. Meine Aufgabe ist es, eine Liste, die ich habe, zu strukturieren.

Die Liste sieht ungefähr so aus.

Username: x : UID : Gruppe : Vor- und Nachname ( das sind tausende Einträge)

UID= UserID

Zuerst habe ich mir gedacht, das ich mir nur Username und UID anzeigen lassen. Aber das funktioniert noch nicht mal. kA was falsch ist.

So sieht das Script aus.

#!/bin/bash

awk ‚{print $1;$3}‘ hier die datei, aus der er die daten nehmen soll

Danach soll ich die Gruppe, als Überschrift machen und alle die die in die Gruppe reingehören, drunter hängen… Ich hoffe ihr seht wie ich es an dem Beispiel meine.

Also

12345(Gruppe)

Username UID
Username UID
Username UID

132645 (Gruppe)

Username UID
Username UID
Username UID usw usw…

Was kann ich dafür für Befehle verwenden, ich weiß einfach nicht weiter?

Was habe ich im ersten script schon falsch?

Liebe Grüße

fachidiot90

Username: x : UID : Gruppe : Vor- und Nachname ( das sind
tausende Einträge)

awk ‚{print $1;$3}‘ hier die datei, aus der er die daten
nehmen soll

Die Einträge sind durch einen Doppelpunkt getrennt.

cat liste.txt | awk -F: '{print $1" "$3}'

Gruß,
Stefan

Hiho,

Die Einträge sind durch einen Doppelpunkt getrennt.

cat liste.txt | awk -F: ‚{print $1" "$3}‘

Useless use of cat :wink:

Um die gewünschte Ausgabe zu erhalten muss man mit Arrays arbeiten…jedenfalls würde ich das so machen

awk 'BEGIN{
 FS=":"
}
{
 gUID\_arr[$4]=gUID\_arr[$4] $1 "\n"
}
END{
 for ( x in gUID\_arr ) {
 print "\nGruppe: "x;
 print gUID\_arr[x];
 }
}' meinedatei.txt

Grüße
Martin

Useless use of cat :wink:

Das mach ich jetzt seit 20 Jahren so, und das wird mir auch keiner mehr abgewöhnen :wink:

Gruß,
Stefan