Ich versuche also, eine Ausgabe ähnlich zu extrahieren
x=($discover nginx --human=nood)
Das gibt mir eine Ausgabe wie
i-03099 nginx IP Noodlefish Pip b4b966d280546c6b070f5f952c281d3294308048
Außerdem möchte ich die Pip-Spalte in eine andere Variable extrahieren. Wenn ich das tue
echo "$x" | cut -f6
Ich erhalte das gewünschte Ergebnis, aber erst wenn ich es versuche.
y= "$x" | cut -f6
Ich erhalte eine leere Ausgabe.
Können Sie mir bitte erklären, warum das passiert und wie ich das gewünschte Ergebnis erziele. Vielen Dank im Voraus.
Antwort1
Außerdem möchte ich die Pip-Spalte in eine andere Variable extrahieren. Wenn ich das tue
echo "$x" | cut -f6
Ich erhalte das gewünschte Ergebnis[...]
Das ist komisch, denn das sollte nicht funktionieren, da
‘-f FIELD-LIST’
‘--fields=FIELD-LIST’
Select for printing only the fields listed in FIELD-LIST. Fields
are separated by a TAB character by default. Also print any line
that contains no delimiter character, unless the ‘--only-delimited’
(‘-s’) option is specified.
-f
sollte nur funktionieren, wenn die Felder durch TAB getrennt sind, sofern nicht -d
anders festgelegt.
Wenn Sie das Feld nach dem Wort extrahieren möchten pip
, funktioniert dieses Skript bei mir
x="i-03099 nginx IP noodlefish pip b4b966d280546c6b070f5f952c281d3294308048"
y=$(echo -n "$x" | cut -d ' ' -f 6 -)
echo "$y"
Antwort2
Verwenden Sie den folgenden Befehl
y=`echo $x |cut -f6`