Shell/bash Programmierung Ubuntu Ausgabeumlenkung
Servus,
habe folgendes Problem:
Ich muss aus einer Dateit, deren Ausgabe folgendes beinhaltet:
ich brauche das was nach id ist, also in dem Fall unusedFunction, also mache ich:
awk -F\" '{print$6}' test.txt | grep -v '^$' > $value
das grep ist dazu da um die viele Leerzeichen zu löschen. Das Problem ist, dass hier :Mehrdeutige Umlenkung.
Kann mir sagen was das Problem ist? In eine datei umzulenken Funktioniert gut, weil dann steht unusedFunction, aber mit Variable klappt das nicht.
Danke für eure Hilfe
beste Grüße
2 Antworten
Hallo
Ich muss aus einer Dateit, deren Ausgabe folgendes beinhaltet:
Was beinhaltet die Datei denn nun?
das grep ist dazu da um die viele Leerzeichen zu löschen.
grep löscht doch keine Zeichen!
Du gibst mit awk die Spalte 6 (egal ob mit einem oder mehreren Leerzeichen oder einem Tab getrennt) aus. Dein grep unterdrückt die Ausgabe von Zeilen wo direkt nach dem Zeilenanfang das Zeilenende kommt, also Leerzeilen.
awk -F\" '{print$6}' test.txt | grep -v '^$' > $value
Deine Ausgabeumlenkung soll in eine Variable gehen, aber nicht so!
Besser so:
grep -v '^$' test.txt | awk -F\" '{print$6}' > ausgabedatei
Um dann in eine Variable zu schreiben ist eine while-Schleife das Mittel der Wahl.
Linuxhase
In $value wird ein ungültiger Wert drinstehen, wahrschienlich mit Leerzeichen drin. Das wird dann, wenn Du bei der output redirection als Ziel $value ohne doppelte Anführungsstriche drumherum verwendest, als "mehrere Parameter" interpretiert. Und weil es hinter dem ">" für die output redirection steht, ist das dann eben mehrdeutig.