Wie lese ich die zweite Zeile der Ausgabe eines Befehls in eine Bash-Variable?

7

Ich habe einen Befehl, der mehrere Zeilen ausgibt, und ich möchte die zweite Zeile in eine Bash-Variable einfügen.

wie echo "AAA\nBBB" und ich möchte einen Bash-Befehl, der BBB in eine Bash-Variable setzen würde.

    
sorin 29.11.2012, 11:28
quelle

7 Antworten

12

Mit sed :

%Vor%

Mit awk :

%Vor%

Dann simuliere einfach deine Variable:

%Vor%     
Steve 29.11.2012, 11:33
quelle
4

Rufen Sie read zweimal auf:

%Vor%

Beachten Sie, dass Sie {} benötigen, damit beide Befehle denselben Eingabestream erhalten. Außerdem sind die Variablen außerhalb von {} nicht zugänglich, daher funktioniert nicht :

%Vor%     
Aaron Digulla 29.11.2012 11:32
quelle
2

Sie können sed :

verwenden %Vor%

Zum Beispiel:

%Vor%

Sie ändern die Nummer entsprechend der Zeile, die Sie drucken möchten.

    
P.P. 29.11.2012 11:33
quelle
1

Sie können dies tun, indem Sie die Ausgabe über Kopf / Schwanz leiten - var=$(cmd | tail -n +2 | head -n 1)

    
Lars Kotthoff 29.11.2012 11:32
quelle
1

Verwenden Sie ein Array mit Parametererweiterung, um Subshells zu vermeiden:

%Vor%     
koola 29.11.2012 12:26
quelle
0

in einem Bash-Skript: Variable = echo "AAA\nBBB" | awk "NR==2"

    
Tyzoid 29.11.2012 11:36
quelle
0

So:

%Vor%     
Chris Seymour 29.11.2012 11:31
quelle

Tags und Links