Shell-Befehle entsprechen Schlüssel-Wert-Paare
Ich habe eine Datei, die enthält eine Liste von key=value
Paare, die jeweils auf einer eigenen Zeile. Was ist der beste Weg zu Holen, den Wert für einen angegebenen Schlüssel die Verwendung von shell-Befehlen?
bourne, C, bash shell
Ich endete mit: grep "Schlüssel" filename | sed '/key=//'
Ich endete mit: grep "Schlüssel" filename | sed '/key=//'
InformationsquelleAutor live2dream95 | 2010-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
was
Was ist, wenn die Datei hat eine horizontale Liste von Schlüssel=Wert-Parameter?
Poster sagte, "jeder auf seiner eigenen Linie". Aber ja, wenn es mehr als eins pro Zeile, dann würde es nicht funktionieren.
InformationsquelleAutor Rob Wells
Dies ist, wie ich es in der ksh.
Können Sie auch verwenden, schneiden Sie statt awk. Wenn Sie begrenzen das Schlüsselpaar mit einem Leerzeichen Sie können die drop -F"=".
awk -F"=" '/^key=/{print $2}'
InformationsquelleAutor Ethan Post
Ausgabe
oder Sie können einfach verwenden Sie die shell(z.B. bash)
awk ... '$1 == k {print $2}' file
hängt davon ab. wenn OP Bedürfnisse genau passend. Wenn nicht, regexp geeignet ist. OP Implementierung eines SQL "like" - äquivalent mit regexp.
Der awk-Befehl oben nicht angezeigt wird, um die Arbeit mit Solaris.
InformationsquelleAutor ghostdog74