Ich würde sed
stattdessen verwenden grep
, also wird Ihr Filter zu:
... | sed -n 's%^.* = .* = .*/\(.*\)/.*%\1%pg'
Anmerkungen:-
- Da wir mit dem
/
Zeichen übereinstimmen, habe ich das normale Zeichenfolgenbegrenzungszeichen ersetzt%
, um den Ausdruck zu vereinfachen, indem ich die Notwendigkeit eines Fluchtens vermeide/
. - Wir passen die gesamte Zeile an und ersetzen sie durch das, was zwischen zwei Schrägstrichen nach zwei Gleichheitszeichen steht, die durch
\(
und\)
in der Übereinstimmungszeichenfolge und\1
in der Ersetzung begrenzt werden. - Wir geben nichts aus (
-n
) außer in Zeilen, in denen Übereinstimmungen (%pg
) vorhanden sind.
Zur Vereinfachung meiner Darstellung habe ich .*
die Zahlen verwendet. Sie können verwenden [0-9\.]+
, aber Sie müssen Extended RE mit verwendengrep -rn ...
Wenn Sie es noch nicht verwendet sed
haben, empfehle ich dieses Tutorial .