Wie ich Lesen Sie die zweite Zeile der Ausgabe von Befehl in einer bash-variable?
Habe ich einen Befehl, der druckt mehrere Zeilen und ich möchte die zweite Zeile in einem bash-variable.
wie echo "AAA\nBBB"
und ich möchte ein bash-Befehl, der würde BBB
in einer bash-variable.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit
sed
:Mit
awk
:Dann einfach, echo variable:
Call
read
zweimal:Beachten Sie, dass Sie die
{}
so stellen Sie sicher, dass beide Befehle rufen die gleichen input-stream. Auch die Variablen sind nicht von außen zugänglich{}
, so bedeutet dies nicht Arbeit:{ read line1; read line2; } < <(command)
oder ein here-Zeichenfolgeoutput=$(command); { read line1; read line2; } <<< "$output"
sed
oderawk
odertail
/head
combo).Können Sie
sed
:Beispiel:
Ändern Sie die Nummer nach der Zeile, die Sie drucken möchten.
Sie können dies tun, durch umleiten der Ausgabe durch head/tail --
var=$(cmd | tail -n +2 | head -n 1)
Verwenden Sie ein array mit parameter-expansion zu vermeiden Unterschalen:
/
und}
wirklich notwendig?in ein bash-script:
Variable=
echo "AAA\nBBB" | awk "NR==2"
Wie diese: