免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8970 | 回复: 12
打印 上一主题 下一主题

[文本处理] shell读取每100行数据后再做处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-03 16:40 |只看该作者 |倒序浏览
本帖最后由 93846273 于 2014-07-03 16:41 编辑

有一个文件的内容是目标ip,该文件有1000个IP,每行一个IP,这样该文件总共有1000行。
当前的需求是要测试这1000个IP的连通性,但要求是每100行检测连通性后将结果保存到当前时间的文件里面,比如16:30.txt,这样总共生成10个文件,请问读取每100行的操作如何实现呢,比如第一个文件的连通性测试结果是1-100行的ip,第二个文件的连通性的结果是,101-200行的ip。

论坛徽章:
0
2 [报告]
发表于 2014-07-03 17:14 |只看该作者
split -l 100      切成多个小文件后再处理

论坛徽章:
0
3 [报告]
发表于 2014-07-03 17:24 |只看该作者
  1. #! /bin/sh

  2. declare -i i=1

  3. #while [ $i -le 254 ];do

  4. #   echo "192.168.1."$i >> gg
  5. #   let i=$i+1

  6. #done

  7. filename=`date +%s`

  8. while read line;do
  9.   
  10.   ping -c 1 $line
  11.   if [ $? -eq 0 ];then
  12.      echo $line" online" >> $filename
  13.    else
  14.      echo $line" offline" >> $filename
  15.    fi


  16.    let i=$i+1
  17.    if [ $i -eq 100 ];then
  18.         filename=`date +%s`
  19.         let i=0
  20.     fi


  21. done < gg

复制代码

论坛徽章:
0
4 [报告]
发表于 2014-07-03 17:30 |只看该作者
楼上思路是对的。

其实可以直接让  i++ 一直执行。
判断一下  i/100 的余数为 0 时把 filename 重新定义一下就行了。

论坛徽章:
0
5 [报告]
发表于 2014-07-03 18:25 |只看该作者
我一直以为let后面的变量不能加$,原来是不用加$。

论坛徽章:
0
6 [报告]
发表于 2014-07-03 18:57 |只看该作者
多谢各位,非常感谢!

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
7 [报告]
发表于 2014-07-03 19:09 |只看该作者
用sed可以截取某行到某行的内容,
  1. sed -n "11,20p" file
复制代码
,可以打印11到20行,其中的两个参数可以用变量代替~应该符合楼主要求吧?

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
8 [报告]
发表于 2014-07-04 09:20 |只看该作者
本帖最后由 Herowinter 于 2014-07-04 09:27 编辑

回复 1# 93846273
  1. for((i=1;i+99<=1000;i+=100))do filename=`date +%H:%M`".txt";sed -n "$i,+99p" urfile>filename;done
复制代码
新文件名按照你1楼的格式写的,但取小时和分钟数可能有问题,
同一分种的后一次操作会覆盖前一次。

论坛徽章:
0
9 [报告]
发表于 2014-07-04 11:41 |只看该作者
回复 8# Herowinter

循环中加入连通性检测就没问题了吧。

论坛徽章:
1
处女座
日期:2014-06-01 17:09:46
10 [报告]
发表于 2014-07-06 00:28 |只看该作者
nc  打开端口用追加的方式来传输数据
你可以自己试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP