ho il seguente testo ...Awk impostare la variabile per la linea dopo se partita dichiarazione
BIOS Information
Manufacturer : Dell Inc.
Version : 2.5.2
Release Date : 01/28/2015
Firmware Information
Name : iDRAC7
Version : 2.21.21 (Build 12)
Firmware Information
Name : Lifecycle Controller 2
Version : 2.21.21.21
... che viene convogliata nella seguente dichiarazione awk ...
awk '{ if ($1" "$2 == "BIOS Information") var=$1} END { print var }'
Questa volontà uscita 'BIOS' in questo caso. Voglio cercare 'BIOS Information' e quindi impostare il terzo campo, due linee in basso, quindi in questo caso 'var' equivale a '2.5.2'. C'è un modo per farlo con awk?
EDIT: Ho provato quanto segue:
awk ' BEGIN {
FS="[ \t]*:[ \t]*";
}
NF==1 {
sectname=$0;
}
NF==2 && $1 == "Version" && sectname="BIOS Information" {
bios_version=$2;
}
END {
print bios_version;
}'
che mi dà '2.21.21.21' con il testo di cui sopra. Può essere modificato per darmi la prima "Versione" che segue "Informazioni sul BIOS"?
provato che mi dà la versione per la sezione sbagliata. Ho appena aggiunto una sezione più completa del testo che sto elaborando. Grazie! – user1601716
Risolto. Mancava il segno di uguale qui: 'sectname ==" Informazioni sul BIOS "'. – gudok
Funziona alla grande e posso ampliarlo, grazie! – user1601716