免费注册 查看新帖 |

Chinaunix

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

perl中类似sed的功能如何表述? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-01 22:51 |只看该作者 |倒序浏览
现在对一文件内容进行编辑.比如:
想将文件NJ05310B.TXT内带有G04%NEXT的字段的行替换成G04%NEXT==
sed命令表示为:

sed -e " /G04%NEXT/c\\
G04%NEXT== " NJ05310B.TXT >; test

用perl如何表示?
先谢谢了!

论坛徽章:
0
2 [报告]
发表于 2005-04-02 01:10 |只看该作者

perl中类似sed的功能如何表述?

use sed2perl

论坛徽章:
0
3 [报告]
发表于 2005-04-02 02:08 |只看该作者

perl中类似sed的功能如何表述?


  1. open(FH, "test.txt");
  2. @_ = <FH>;;
  3. close(FH);

  4. open(FH, ">; test.txt");
  5. foreach (@_) {
  6.   $_=~ s/^G04%NEXT$/G04%NEXT==/g;
  7.   print FH $_;
  8. }
  9. close(FH);
复制代码

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-04-03 15:38 |只看该作者

perl中类似sed的功能如何表述?

try perl1line:

  1. perl -pi -e 's/(G04%NEXT)/\1==/g' filename
复制代码

论坛徽章:
0
5 [报告]
发表于 2005-04-03 22:52 |只看该作者

perl中类似sed的功能如何表述?

笨狗,文件test.txt能生成,但并没有替换啊!(完全复制!)
寂寞烈火,试着执行你的命令,失败,报:can't do inplace edit without backup.

论坛徽章:
0
6 [报告]
发表于 2005-04-03 23:08 |只看该作者

perl中类似sed的功能如何表述?

笨狗,命令: $_=~ s/^G04%NEXT$/G04%NEXT==/g;
并非做行替换,比如:
原行为 G04%NEXT=="NU05310B.GBL";%*
替换为 G04%NEXT=="-";%*

具体如何写那一行命令,先谢谢了!

论坛徽章:
0
7 [报告]
发表于 2005-04-03 23:12 |只看该作者

perl中类似sed的功能如何表述?

估计是类似于
perl -pi -e 's/源字符串/目的字符串/g' filename
这样的

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-04-04 02:45 |只看该作者

perl中类似sed的功能如何表述?

原帖由 "happy352" 发表:
笨狗,文件test.txt能生成,但并没有替换啊!(完全复制!)
寂寞烈火,试着执行你的命令,失败,报:can't do inplace edit without backup.

  1. /home/lee#cat filename
  2. aaaaaaaaaaa
  3. bbbbbbb
  4. ffffffff
  5. G04%NEXT
  6. /home/lee#perl -pi -e 's/(G04%NEXT)/\1==/g' filename
  7. /home/lee#cat filename
  8. aaaaaaaaaaa
  9. bbbbbbb
  10. ffffffff
  11. G04%NEXT==
  12. /home/lee#perl -e 'print $],"\n"'
  13. 5.008
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP