免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: marksman201
打印 上一主题 下一主题

shell脚本与字符编码的问题(已解决) [复制链接]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
11 [报告]
发表于 2010-04-16 11:33 |只看该作者
回复 10# marksman201


    有可能。

    如果是在CUI界面,cat能正常显示中文,编码就应该没有问题。

论坛徽章:
0
12 [报告]
发表于 2010-04-16 12:28 |只看该作者
回复 11# blackold

:~$ curl -s http://blog.chinaunix.net/u2/86590/index.php|sed '/访问量/!d;s/.*访问量:\([0-9]\+\).*/\1/'
<tr><td width="30" align="right">·</td><td width="170">总访问量:17110</td></tr>

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
13 [报告]
发表于 2010-04-16 12:42 |只看该作者
回复 12# marksman201


    是什么环境?sed版本?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
14 [报告]
发表于 2010-04-16 13:04 |只看该作者
回复 6# marksman201


是你的版本问题吧
# cat test.sh
#!/bin/bash
wget -q http://blog.chinaunix.net/u2/86590/index.php
awk '/countinfo/{getline;print}' index.php | sed 's/.*[^0-9]\([0-9]\{1,\}\)<\/td><\/tr>/\1/g'

# ./test.sh
17112

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
15 [报告]
发表于 2010-04-16 13:07 |只看该作者
回复 5# marksman201


.*在<>里面它也一样贪婪啊,你的sed版本真奇怪。
# cat test.sh
#!/bin/bash
wget -q http://blog.chinaunix.net/u2/86590/index.php
awk '/countinfo/{getline;print}' index.php | sed 's/<.*>//g'

# ./test.sh

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
16 [报告]
发表于 2010-04-16 13:07 |只看该作者
回复 14# Shell_HAT


    应该是。

论坛徽章:
0
17 [报告]
发表于 2010-04-16 13:36 |只看该作者
回复 13# blackold

:~$ sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
18 [报告]
发表于 2010-04-16 14:13 |只看该作者
回复 17# marksman201


    这个版本不会有问题啊。

论坛徽章:
0
19 [报告]
发表于 2010-04-16 14:27 |只看该作者

  1. awk '/countinfo/{getline;print}' index.php | LANG=C egrep -o '[0-9]{4,}'

  2. 或者:

  3. awk '/countinfo/{getline;print}' index.php | LANG=C sed 's/.*>[^0-9]*\([0-9]\+\).*/\1/'

  4. 用LANG=C强制一下,就可以正确取到数字了
复制代码

论坛徽章:
0
20 [报告]
发表于 2010-04-16 14:32 |只看该作者
这个与编码有关系,我的系统用的是utf8的编码,而从CU获取到的文件的编码是GBK,因此,当有中文的时候,就会出一些问题

只要用LANG=C 强制按照单字节处理就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP