我有一个文本文件,其中包含一个名为address.txt的IP地址列表,其中包含以下内容
172.26.26.1 wlan01
172.26.27.65 wlan02
172.26.28.180 wlan03我需要编写一个bash脚本,它读取唯一的IP地址,并将它们平分并输出到另一个文本文件中,如下所示:
172.26.26.1上升 172.26.27.65下跌 172.26.28.180下跌
我对编写脚本相当陌生,所以我不知道从哪里开始。任何帮助都将不胜感激。
发布于 2013-10-06 15:13:14
在Linux中,这是可行的:
awk '{print $1}' < address.txt | while read ip; do ping -c1 $ip >/dev/null 2>&1 && echo $ip IS UP || echo $ip IS DOWN; done我现在没有赛格温测试,但它也应该在那里工作。
解释:
awk,我们从输入文件中获取第一列,并将其输送到循环中ping发送到$ip,并将标准输出和标准错误重定向到/dev/null,这样它不会污染我们的输出ping成功,则执行&&后的命令:echo $ip IS UPping失败,则执行||后的命令:echo $ip IS DOWN有些可读性更强,扩展的格式,可以放入脚本:
#!/bin/sh
awk '{print $1}' < address.txt | while read ip; do
if ping -c1 $ip >/dev/null 2>&1; then
echo $ip IS UP
else
echo $ip IS DOWN
fi
donehttps://stackoverflow.com/questions/19210178
复制相似问题