GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Extrahiere die durchschnittliche Zeit aus ping -c

Eine Möglichkeit besteht darin, einfach einen Schnitt zu dem hinzuzufügen, was Sie dort haben.

ping -c 4 www.stackoverflow.com | tail -1| awk '{print $4}' | cut -d '/' -f 2

Das könnte für Sie funktionieren:

ping -c 4 www.stackoverflow.com | sed '$!d;s|.*/\([0-9.]*\)/.*|\1|'

Die folgende Lösung verwendet nur Bash (erfordert Bash 3):

[[ $(ping -q -c 4 www.example.com) =~ \ =\ [^/]*/([0-9]+\.[0-9]+).*ms ]] \
&& echo ${BASH_REMATCH[1]}

Für den regulären Ausdruck ist es einfacher zu lesen (und zu handhaben), wenn er in einer Variablen gespeichert ist:

regex='= [^/]*/([0-9]+\.[0-9]+).*ms'
[[ $(ping -q -c 4 www.example.com) =~ $regex ]] && echo ${BASH_REMATCH[1]}

ping -c 4 www.stackoverflow.com | tail -1| awk -F '/' '{print $5}' würde gut funktionieren.

Die Option "-F" wird verwendet, um das Feldtrennzeichen anzugeben.


Linux
  1. Wie extrahiere ich die Dauer aus der ffmpeg-Ausgabe?

  2. Extrahieren Sie eine einzelne Datei aus einer riesigen TGZ-Datei

  3. Befehlszeile:Substring aus der Ausgabe extrahieren

  4. Daten aus /etc/shadow extrahieren

  5. Was hindert eine Maschine daran, auf Pings zu reagieren?

Time-to-Live-Ping-Fehler überschritten

Wie extrahiere ich einen einzelnen Byteblock aus einer Datei?

Wie extrahiert man Text mit OCR aus einem PDF unter Linux?

Linux-Ping:Zeitüberschreitung anzeigen

Wie misst man die durchschnittliche Ausführungszeit eines Skripts?

Zeilen von unten extrahieren, bis Regex übereinstimmt