«Sed» переписать файл для отображения целых чисел и удалить оставшиеся символы

Я собираюсь создать выход, который можно использовать для разработки среднего значения на основе 5-ти серверных пингов. Я бегу:

ping 8.8.8.8 -c 5 > ping.txt 

которые выходят

 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=46 time=29.331 ms 64 bytes from 8.8.8.8: seq=1 ttl=46 time=34.057 ms 64 bytes from 8.8.8.8: seq=2 ttl=46 time=33.978 ms 64 bytes from 8.8.8.8: seq=3 ttl=46 time=33.629 ms 64 bytes from 8.8.8.8: seq=4 ttl=46 time=48.414 ms --- 8.8.8.8 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 29.331/35.881/48.414 ms 

Затем я пытаюсь удалить текстовые данные, окружающие время в мс для каждого пинга на сервере, на данный момент у меня есть:

 sed 's/".*time=//' ping.txt > pingres.txt 

Который не совсем удаляет все требуемые данные и выводит их следующим образом:

 PING 8.8.8.8 (8.8.8.8): 56 data bytes 29.331 ms 34.057 ms 33.978 ms 33.629 ms 48.414 ms --- 8.8.8.8 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 29.331/35.881/48.414 ms 

Я хотел бы показать данные следующим образом, но забыл о некоторых принципах sed, чтобы достичь этого, и я довольно новичок.

 29.331 34.057 33.978 33.629 48.414 

Я понимаю, в нижней части файла уже отмечен средний знак, но мне нужен этот метод по другим причинам

2 Solutions collect form web for “«Sed» переписать файл для отображения целых чисел и удалить оставшиеся символы”

Вы можете немного фильтровать grep чтобы ограничить линии, на которые вы смотрите:

 $ ping 127.0.0.1 -c 5 | grep "bytes from" | sed -n -e 's/^.*time=//' -n -e 's/[^0-9\.].*$//p' 0.020 0.040 0.054 0.036 0.049 
 grep -m5 -oP '\stime=\K\d+\.\d+(?=\s+ms$)' ping.text sed -ne '2,6s/.* time=\([^ ]*\) ms/\1/p' ping.text 
  • Проблема с sed в массиве, содержащем строки, содержащие пробелы
  • Grep точное количество цифр и некоторые другие символы
  • Получите первое соответствие шаблону в строке, не использующей разрез
  • Изменить имена файлов в Makefile
  • grep -A с обратной совпадением распечатывает только несоответствие в поле после
  • Есть ли надежный инструмент командной строки для обработки CSV-файлов?
  • Найдите строку (например, grep -q) только в одном разделе файла
  • Удалить комментарии в файле C
  • использование sed для замены шаблона с помощью хэш-значений
  • sed: многострочная замена блока конфигурации
  • wget on Centos 7 Terminal как загрузить только текст без кода стиля сайта
  • Linux и Unix - лучшая ОС в мире.