首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash脚本读取/平从文本文件中的ip地址列表,然后将结果写入另一个文件?

问bash脚本读取/平从文本文件中的ip地址列表,然后将结果写入另一个文件?
EN

Stack Overflow用户
提问于 2013-10-06 14:56:07
回答 1查看 14.6K关注 0票数 0

我有一个文本文件,其中包含一个名为address.txt的IP地址列表,其中包含以下内容

代码语言:javascript
复制
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下跌

我对编写脚本相当陌生,所以我不知道从哪里开始。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-06 15:13:14

在Linux中,这是可行的:

代码语言:javascript
复制
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 UP
  • 如果ping失败,则执行||后的命令:echo $ip IS DOWN

有些可读性更强,扩展的格式,可以放入脚本:

代码语言:javascript
复制
#!/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
done
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19210178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档