免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1969 | 回复: 2

perl 命令行参数求教 [复制链接]

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2016-12-20 18:18 |显示全部楼层
本帖最后由 sunzhiguolu 于 2016-12-20 18:23 编辑

perl 的命令行参数 -l (字母 L 的小写形式), 对于段落文本的处理 读取目标文本前以及处理后输出时都进行了哪些工作?
比如测试文本如下:
A
B
C

D
E
F

G
H
I

代码如下:
  1. perl -00ple 's/\n/\t/g' f
复制代码
我的期望输出是这样的:
A       B       C
D       E       F
G       H       I

但是实际的输出结果是这样的:
A       B       C

D       E       F

G       H       I

这个 -l 参数实在难以把握, 哪位大神帮忙指点一下。 谢谢。。。






论坛徽章:
0
发表于 2016-12-20 21:35 |显示全部楼层
关于Perl命令行参数不清楚的都可以去看perlrun这个文档。

对于你这个问题,值得注意的是-l在时候会把$/设置为$\。你用了paragraph mode所以按理$/为空字符串,但是这个有点特殊,因为实际产生作用的terminator显然不可能是一个空字符,而相应的$\也并不是空串。

我们可以看一下,
  1. $ perl -00ple 'print "s$\e"; s/\n/|/g' f
  2. s

  3. e

  4. A|B|C

  5. s

  6. e

  7. D|E|F

  8. s

  9. e

  10. G|H|I
复制代码


可见$\实为两个换行。

为达到你的预期,一个workaround的办法是自己设置一下$\
  1. $ perl -00ple '$\="\n"; s/\n/|/g' f
  2. A|B|C
  3. D|E|F
  4. G|H|I
复制代码

评分

参与人数 1信誉积分 +10 收起 理由
sunzhiguolu + 10 很给力!

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2016-12-21 16:47 |显示全部楼层
我只想说您分析的非常透彻,讲解的好详细。 非常感谢帮助。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP