免费注册 查看新帖 |

Chinaunix

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

[其他] 请教awk数值和字符串比较的一问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-20 17:09 |只看该作者 |倒序浏览
[root@nagios-servr ssh]# awk '{if($1>244)print }'  aa
fd
[root@nagios-servr ssh]# cat aa
fd
在这个例子当中字符串比数值大

在网络一篇文章中看到
字符串与0相加,会被当作数值
str="123"
awk中,用str与90比较,会发现str比90小,这里作的是字符串比较。
str+0会被当作数值 ,用 str+0与90比较即可。
字符串比数值小

[root@nagios-servr ssh]# cat aa
192.168.2.13
fdf.abc.dd.fd
192.128.99.
192.168.444.343
192.168.33.44
fdfd.fdf
[root@nagios-servr ssh]# awk  -F"." 'NF==4{for(i=1;i<=4;i++){if($i<1||$i>255)$0=""}{if($0!="")print}}'  /etc/ssh/aa
192.168.2.13
192.168.33.44
在这个例子,好像是字符串比数值小,,有点晕了,,,
这是怎么回事,,求解

论坛徽章:
0
2 [报告]
发表于 2013-01-20 17:48 |只看该作者
想了一下,,字符串比数值大,,应该没问题的
可能是那篇文章有问题

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
3 [报告]
发表于 2013-01-20 18:22 |只看该作者
[root@nagios-servr ssh]# awk  -F"." 'NF==4{for(i=1;i<=4;i++){$i>255)$0=""}{if($0!="")print}}' /etc/ssh/aa
192.168.2.13
192.128.99.
192.168.33.44

可见还是字符比数字大

论坛徽章:
0
4 [报告]
发表于 2013-01-20 19:56 |只看该作者
回复 3# cao627
是的,,一时没反应过来,,被那篇文章误导了

   

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
5 [报告]
发表于 2013-01-22 13:59 |只看该作者

  1. # 因为比较运算符可以对字符串进行处理,于是不会把字符转为数字
  2. [seesea@UC ~]$ awk 'BEGIN{ print ("a" > "1") ("a" > 1) ("1" == 1) ("123" > 90) (123 > 90) (0+"123" > 90) ("123"+0 > 90) ("123"+"0" > 90)}'
  3. 11101111
  4. # 而数学运算符只对数字进行运算,所以会把字符转为数字,因此可以用+0来做字符转数字的操作
  5. [seesea@UC ~]$ awk 'BEGIN{ print print "123" + "0" }'
  6. 123
  7. [seesea@UC ~]$ awk 'BEGIN{ print "123"+"abc" }'
  8. 123
复制代码

论坛徽章:
1
2015亚冠之西悉尼流浪者
日期:2015-05-28 16:30:37
6 [报告]
发表于 2013-01-23 10:58 |只看该作者
又学习了一点点,哈哈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP