Lösung 2 geht, da aber xargs standardmäßig Leerzeichen als Trennzeichen nimmt, ich aber Leerzeichen im Zeileninhalt habe, musste ich vorher immer ein '*' anhängen und dann xargs mit -d "* aufrufen.
Du hast pro Zeile 2 Wörter, nämlich Vorname und Nachname, die mit Leerzeichen getrennt sind. Sind 3 oder mehrere Wörter in der Zeile bsp. 2 Vornamen, klappt das nicht mehr und alles verschiebt sich um eine Stelle.
Lösung 1 und 3 gehen nicht. Bei Lösung 1 wird ja mit dem Inhalt nichts gemacht. Die ganze Zeile wird nur ausgegeben ohne sie aufzusplitten.
Beachte das Quoting! Ist die Variable von Anführungszeichen umschlossen, wird das als 1 Argument an yad übergeben, yad splittet dann am Zeilenumbruch, und zwar in 3, statt wie erwartet in 6 Teile, wenn man deine Liste als Beispiel nimmt.
Bei Lösung 3 werden immer die Leerzeichen als Trenner verwendet, auch wenn ich --separator="*" verwende.
Lies die manpage von yad --separator ist der Trenner für die Ausgabe, nicht für die Eingabe. Ich habe das so verstanden, du hast Vor- und Nachname mit einem Leerzeichen getrennt in einer Zeile, wie es dein Beispiel auch zeigt. Argument 1 (manuel) wird Spalte 1 (Vorname) zugeordnet, Argument 2 (neuer) in Spalte 2 (Nachname), Argument 3 (thomas) kommt in Spalte 1, usw. Es kommen also alle Argumente mit ungerader Zahl(Argument 1,3,5) in Spalte 1, die mit geraden Zahlen in Spalte 2
Komisch bei Lösung 2 ist aber, dass die 2. Zeile die doppelte Zeilenhöhe hat wie die Zeile 1 obwohl der Inhalt gleich lang ist. Der Inhalt einer Spalte wird ganz unten, die beiden anderen mittig angezeigt.
Das kann ich so nicht nachstellen.
Wie wird die Liste erstellt? Besteht die Liste immer aus genau Vorname und Nachname, getrennt mit Leerzeichen? Möglicherweise ist es praktischer ein Array mit den Daten zu füllen und an yad zu übergeben.