Dies kann als Stream zu sehen Bearbeitungsaufgabe: Reduziere diese eine Zeile auf die erste Ziffer. Grund regex registerbasierte Referenzierung erreicht die Aufgabe:
$ echo "junk 1.2.3.4" | sed -e 's/.* \([0-9]\).*/\1/'
1
Traditionell ist Grep am besten für Dateien und Linien suchen, die einem Muster entsprechen. Aus diesem Grund erfordert die grep-Lösung die Verwendung von Perl regex; Perl Regex verfügt über Funktionen, die grep in Kombination mit -o
erlauben, "out of the box" zu entkommen und so verwendet zu werden, wie es eigentlich nicht beabsichtigt war: passe X an, gebe aber einen Teilstring von X aus. Die Lösung ist knapp, aber Nicht portierbar für Grep-Implementierungen ohne PCRE.
Verwenden Sie [0-9]
, um ASCII-Ziffern übrigens anzupassen. Der Zweck von [[:digit:]]
ist, Gebietsschema-spezifisches Verhalten einzubringen: um andere Ziffern als nur die ASCII 0x30 bis 0x39 abgleichen zu können.
Es ist ziemlich sicher zu sagen, dass nmcli
wird nicht seine --version
mit z. B. Devangari Ziffern, wie 1.2.3.4.
@trincot haben Sie sich die Mühe gemacht, das zu versuchen? '^' stimmt mit dem Anfang einer Zeichenfolge überein, nicht mit der ersten Instanz des folgenden Musters. –
keine der Ziffern stehen am Anfang der Zeichenfolge @trincot. –
'nmcli --version | awk -F [.] '{{$ 4 drucken}}? – Cyrus