Как извлечь время из текстового файла в другой текстовый файл/список

Решение Stéphane Chazelas awkпрекрасно:

awk '!/AAA/ || !n++' file.in

Это можно обобщить как

awk '$0 !~ pattern || !n++' pattern="$pattern" file.in

для заданной переменной оболочки $pattern, содержащей некоторое регулярное выражение.

Если $patternсодержит обратную косую черту, их необходимо экранировать ( \\), или вы можете использовать

P="$pattern" awk '$0 !~ ENVIRON["P"] || !n++' file.in

0
29.09.2016, 02:19
3 ответа

Это работает для меня:

sed 's/.*time=\([0-9]*\) .*/\1/' times | sort -n > outfile

Где раз этот файл:

cat times 
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

А Outfile выглядит так:

cat outfile 
202
206
215
2
28.01.2020, 02:27

Вы можете извлечь время с помощью этого примера сценария:

awk -F\= '{print int($4)}' pingoutput.txt 

Он использует = в качестве разделителя и функцию int, чтобы получить только числа «202 мс» string

Чтобы перенаправить вывод в другой файл, используйте команду:

awk -F\= '{print int($4)}' pingoutput.txt > times.txt

Для сортировки вывода вы можете направить вывод awk в команду sort

awk -F\= '{print int($4)}' pingoutput.txt |sort -n > times.txt
1
28.01.2020, 02:27

Утилита sortможет сортировать строки файла без извлечения чисел. Вы делаете это, описывая утилите, какая часть каждой строки составляет ключ сортировки.

sort -t '=' -k 4,4n pingoutput.txt

Опции, используемые с sortвыше, указывают, что ключ сортировки является числовым значением в начале четвертого=-поля с разделителями.

Если вы хотите получить только числа из результата приведенной выше команды, вы можете использовать sed, чтобы обрезать все до последнего знака равенства в каждой строке, а затем все после пробела.

sort -t '=' -k 4,4n pingoutput.txt | sed -e 's/.*=//' -e 's/.*//'

Вы также можете выполнять операции в обратном порядке.

sed -e 's/.*=//' -e 's/.*//' pingoutput.txt | sort -n

Используйте перенаправление после любой из приведенных выше команд, чтобы сохранить вывод в файл.

0
29.09.2021, 09:25

Теги

Похожие вопросы