免费注册 查看新帖 |

Chinaunix

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

perl指定位置输出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-02 09:46 |只看该作者 |倒序浏览
有一个文本,内容类似如下:
... ...
aaa = 2008 ao yun hui
bbb = 2009 2009
... ...  

这样的一个文本文件,我如何用Perl定位到aaa,然后将等号后面的"2008 ao yun hui"输出呢.请帮忙咯!~!!!!

忘记说啦一点,文本文件是用UNICODE做的.这个怎么解决呢???

[ 本帖最后由 Vic_Yu 于 2008-1-2 10:00 编辑 ]

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2008-01-02 10:05 |只看该作者
这样行不行呢?
perl -F'=' -lane 'print $F[1] if /^aaa/'

论坛徽章:
0
3 [报告]
发表于 2008-01-02 10:12 |只看该作者

回复 #2 ly5066113 的帖子

嘿嘿,我看不懂这种方式,有时间的话,讲解具体点,或者用一个其他方式.还有,这个文本是UNICOD编码方式的.

论坛徽章:
0
4 [报告]
发表于 2008-01-02 10:15 |只看该作者
@a=<>;
foreach(@a){
          s/\.*=$ //;
          print OUT
}

等号忘了该不该用反斜杠 忘了  
我写的比较弱  期待高手

论坛徽章:
0
5 [报告]
发表于 2008-01-02 10:23 |只看该作者
原帖由 joewish 于 2008-1-2 10:15 发表
@a=;
foreach(@a){
          s/\.*=$ //;
          print OUT
}

等号忘了该不该用反斜杠 忘了  
我写的比较弱  期待高手


嘿嘿,似乎代码有一些问题

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
6 [报告]
发表于 2008-01-02 10:24 |只看该作者
原帖由 Vic_Yu 于 2008-1-2 10:12 发表
嘿嘿,我看不懂这种方式,有时间的话,讲解具体点,或者用一个其他方式.还有,这个文本是UNICOD编码方式的.


UNICOD编码 我不懂,我那个命令后面直接加你的文件名就可以了,试试看。

perl -F'=' -lane 'print $F[1] if /^aaa/' urfile

论坛徽章:
0
7 [报告]
发表于 2008-01-02 10:41 |只看该作者
@a=<>;
foreach(@a){
          s/\.*=$ //;
          print OUT
}

句柄一类的我都没给你写   我的意思是 把你 所有 =号左面的连同等号去掉 直接把右面输出
你自己可以改变下 直接写成^aaa 代替模式

论坛徽章:
0
8 [报告]
发表于 2008-01-02 11:00 |只看该作者
Config::INI::Reader
....还有很多
如果你的文本格式像INI文件的话,你就可以用这个模块

论坛徽章:
0
9 [报告]
发表于 2008-01-02 11:07 |只看该作者
原帖由 zhangkeyijian 于 2008-1-2 11:00 发表
Config::INI::Reader
....还有很多
如果你的文本格式像INI文件的话,你就可以用这个模块


关键是不是呢,是一个SERVER上跟踪的纪录,我需要知道他里面的具体细节,UNICODE是美国公司SERVER的需求......

论坛徽章:
0
10 [报告]
发表于 2008-01-02 11:11 |只看该作者
原帖由 ly5066113 于 2008-1-2 10:24 发表


UNICOD编码 我不懂,我那个命令后面直接加你的文件名就可以了,试试看。

perl -F'=' -lane 'print $F[1] if /^aaa/' urfile


嘿嘿,按照你的意思,但是似乎我这里出错,我是在WINDOWS环境下运行perl的,错误信息:"Bad name after F' at C:\Documents and Settings....."
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP