2017-03-16 9 views
-3

Ändern der Abfrage, um etwas mehr Kontext bereitzustellen.Linux-Ausgabe - Finden Sie Zahlen zwischen zwei/

ich ein starkes Skript schreibe eine Liste von Objekten Ausgang s3 zu bekommen: // xyz/1/abc s3: // xyz/2/lmo s3: // xyz/6/hjl

Ich muss die größte Zahl in der Mitte grep (hier 6).

Auf Befehlszeile habe ich versucht, echo "xyz/23/xyz/jhdids/dsd" | awk -F \/'0 $ = 2 $' awk: Warnung: Escape-Sequenz \/' treated as plain /‘ 23;

Es funktioniert auf Eingabeaufforderung. Aber wenn ich versuche, es in mein grooviges Skript einzubetten, gibt es Fehler. In groovy - $ 4 hat den Wert xyz/23/xyz/jhdids/dsd

aws s3 ls - rekursiv s3: // xyz | sortieren | Schwanz -n 1 | awk '{print $ 4 | awk-F \ /' $ 0 = $ 2 '} \'

Ich hoffe, dass dies mein Problem ausarbeitet. Danke

+0

Willkommen zu Stack Overflow! Reine Code-Writing-Anfragen sind bei Stack Overflow off-topic - wir erwarten, dass sich Fragen hier auf * spezifische * Programmierprobleme beziehen - aber wir helfen Ihnen gerne, es selbst zu schreiben! Sagen Sie uns, was Sie versucht haben (http://stackoverflow.com/help/how-to-ask) und wo Sie stecken bleiben. Dies wird uns auch helfen, Ihre Frage besser zu beantworten. –

+0

Mögliches Duplikat von [Shell-Skript. wie man Zeichenketten mit regulären Ausdrücken extrahiert] (http://stackoverflow.com/questions/19737675/shell-script-how-to-extract-string-using-regular-expressions) – chbchb55

Antwort

0
<linux_command> | grep -oP "\/\K(\d+)(?=\/.*)" 
Verwandte Themen