shell文件读取行的问题,着急上火啊。。。。
时间:2011-05-29
来源:互联网
0 SUCCES - 成功 ---- 202.100.93.98
0 SUCCES - 成功 ---- 61.160.226.168
0 SUCCES - 成功 ---- 221.206.130.32
0 SUCCES - 成功 ---- 221.206.130.33
2 SUCCES - 成功 ---- 123.235.39.123
0 SUCCES - 成功 ---- 221.192.150.92
0 SUCCES - 成功 ---- 222.222.198.93
1 SUCCES - 成功 ---- 61.158.248.62
0 SUCCES - 成功 ---- 61.191.62.217
我现在是要读取每行的第一个字符,如果不是为0,就输出该行,用for写不行,for写的话,它默认是空格为记录分隔符了,太扯淡了:
for ERR_INFO in `cat /tmp/netinfo`
do
ERROR_INFO=`echo "$ERR_INFO"|awk '{print $1}'`
if [ $ERROR_INFO -ne 0 ]
then
echo "$ERR_INFO" >> /tmp/testresult
fi
done
我这边测试,只能用while read line写才能准确的读取每行。问题在于,while这个玩意执行起来就像老牛拉磨似的,忒花时间了!
请教为什么for循环不行,是不是因为有中文的原因??
作者: zhnghaijin 发布时间: 2011-05-29
作者: zhnghaijin 发布时间: 2011-05-29
- OLDIFS=$IFS
- IFS=$'\n'
- 'for code'
- IFS=$OLDIFS
作者: yinyuemi 发布时间: 2011-05-29
额~我看不懂这个是什么方式的处理???
作者: zhnghaijin 发布时间: 2011-05-29
- awk '$1!=0' file
- 2 SUCCES - 成功 ---- 123.235.39.123
- 1 SUCCES - 成功 ---- 61.158.248.62
作者: zooyo 发布时间: 2011-05-29
太刁了!!有时候我们总是把问题想的太复杂。高人擅用的就是简洁的思维,感慨的一次学习啊。。。
作者: zhnghaijin 发布时间: 2011-05-29
先设定新的IFS,执行完你的for code,然后再还原IFS
作者: yinyuemi 发布时间: 2011-05-29
学习了。。。不过我很困惑的是,为什么直接for有问题呢。是因为中文的原因么?
作者: zhnghaijin 发布时间: 2011-05-29
作者: zooyo 发布时间: 2011-05-29
运行下这个看下:
- for ERR_INFO in `cat /tmp/netinfo`
- do
- echo $ERR_INFO
- done
作者: yinyuemi 发布时间: 2011-05-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28