«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 
  • Получите первое соответствие шаблону в строке, не использующей разрез
  • Как анализировать файл данных для извлечения определенных данных и формата для другого использования?
  • Назначения значений двойной кавычки, хранящиеся в CSV?
  • Печатать начало и конец между двумя шаблонами, исключая конец диапазона
  • Выберите строки, начинающиеся с определенных номеров
  • условная окраска в grep
  • Изменить имена файлов в Makefile
  • строковые манипуляции без awk или sed
  • Сравните 2 файла, если он находится между диапазоном чисел
  • Заменить строку последовательным индексом
  • sed: захват и замена всех данных между последней обратной косой чертой и запятой
  • Interesting Posts

    правильный способ установки пакетов с apt-get без запроса

    Создание системы для сценариев оболочки

    Что такое контейнер Linux и гипервизор Linux?

    К какой группе процессов относится моя программа, когда она начинается с bash?

    Как создать ZImage?

    Ресурс (время и память процессора) ограничение и прекращение процесса при нарушении в Linux

    Как отключить диалог «Вставить пароль в случае сбоя аутентификации» в Gnome Screensaver?

    Головной сервер Debian + Клиенты Windows + Экспедирование X11

    Сортировка столбцов из двух файлов с awk

    Помогите мне восстановить мой python – я думаю, dpkg должен быть сброшен (очень сложная проблема)

    SSH: оболочка открыта в пространстве имен IP

    cp или mv-файлы в тот же каталог, в котором они уже находятся, когда я нахожусь в другом?

    Заполнение вкладки bash не работает в & & redirection

    Где я могу найти документацию пользователя для моего старого Freenas 0.7?

    Шрифты к большому с Awesome WM

    Linux и Unix - лучшая ОС в мире.