请教Linux下ping 的批处理文件,输出结果转换成设备名称,如何操作?

请教Linux下ping 的批处理文件,输出结果转换成设备名称,如何操作?
写了一个批处理ping 文件,如下
#! /bin/bash
#ps:ping these ip of the ip.lst,send to ping_ok.lst,fail file send to ping_fail.lst。
echo "" >ping_fail.lst
echo "" >ping_ok.lst
for i in cat ip.lst // ip.lst是ip列表文件
do
ping=ping -c 1 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'
if [ $ping -eq 100 ];then
echo $i $j fail >>ping_fail.lst
else
echo $i $j ok >>ping_ok.lst
fi
done

ip.lst文件内容为:10.37.199.15 cz-cp- JCZ
10.43.75.43 cz-cp- TIA
10.43.75.51 cz-cp- XIT
10.56.72.253 cz- DOP

我希望ping_fail.lst结果文件是
10.43.75.43 cz-cp- TIA down
10.43.75.51 cz-cp- XIT down
10.56.72.253 cz- DOP down

请问怎么修改文档??


#!/bin/bash
while read line
do
i=`echo $line|grep -Eo "([0-9]+\.){3}[0-9]{1,3}"`
ping=`ping -c 1 -W 2 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`
if [ $ping -eq 100 ];then
echo $line down >> ping_fail.lst
else
echo $line ok >> ping_ok.lst
fi
done < ip.lst

你的设备名称有空格,所以筛选下IP

img


有用请采纳