У меня есть список в формате Host:Port
. Из этого списка я извлекаю все хосты, чтобы иметь возможность запускать fping
на нем. Все отвечающие хосты сохраняются в другом файле с соответствующим временем ответа 99.194.7.13 : 44.60
.
. Как я могу создать сценарий оболочки Linux, который объединяет результирующий список хостов с портами из файла Host:Port
и время отклика в формате Host:Port time
? Или есть более эффективный способ архивации онлайн-проверки, например, с помощью флага fping, который игнорирует порты, но, тем не менее, записывает их в файл?
Я пытался:
sed -i 's/:/ /g' hosts.txt
sort -u < hosts.txt > hostss.txt
sort -u < hosts-ports.txt > hosts-portss.txt
join hostss.txt hosts-portss.txt > result.txt
Проблема с этим, что это довольно медленно, я получаю ошибку is not sorted
, и выход имеет формат Host : time Port
, а не Host:Port time
.
Пример ввода:
27.0.0.1:55158
92.168.122.240:80
27.0.0.1:5677
92.168.70.129:1234
107.23.84.102:8080
После Ping:
92.168.122.240 : 0.16s
27.0.0.1 : 0.27s
Ожидаемый вывод:
27.0.0.1:55158 0.27s
27.0.0.1:5677 0.27s
92.168.122.240:80 0.16s
Примечание: Одному хосту в файле Host:Port
также может быть назначено несколько портов.