首页 > UniX技术

使用UNIX命令进行文本处理cat 和 echo

时间:2009-04-15 17:57:39  作者:chinaitlab  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
UNIX......
 

chrish@dhcp3 [248]$ echo a test | perl -p -e 'tr/t/p/;'

a pesp

chrish@dhcp3 [249]$ echo a test | perl -p -e 'tr/aest/1234/;'

1 4234

chrish@dhcp3 [250]$ echo a test | perl -p -e 'tr/t//d;'

a es

chrish@dhcp3 [251]$ echo a test | perl -p -e 'tr/a-z/A-Z/;'

A TEST

      

Perl 的 tr 语句具有不同的语法,它更像 sed 的搜索和替换表达式。另请注意,您在最后一个示例中指定了小写和大写字符的范围。

Perl 中的正则表达式支持非常优秀,并且上面的 sed 示例可以作为有效的 Perl 语句正常工作。清单 18 使用 Perl 显示了清单 16 中的 ls -l 示例,除了 Perl 命令行语法之外,不需要对其他的内容进行更改。


清单 18. 使用 Perl 重组 ls 的输出
 

chrish@dhcp3 [384]$ ls -l | tail | perl -p -e

 's/(.([r-][w-][x-]){3})[[:space:]] [[:digit:]] [[:space:]] ([A-Za-z0-9_\-\.]

 [[:space:]] ){2}([[:digit:]] )[[:space:]] .{3} [0-9 ]{2} [0-9

 ][0-9]:[0-9][0-9][[:space:]] (. )$/\5 (\1) has \4 bytes of data/'

gsrvdir501 (drwx------) has 102 bytes of data

hsperfdata_chrish (drwxr-xr-x) has 68 bytes of data

hsperfdata_root (drwxr-xr-x) has 102 bytes of data

illustrator_activation.plist (-rw-r--r--) has 531 bytes of data

indesign_activation.plist (-rw-r--r--) has 531 bytes of data

objc_sharing_ppc_4294967294 (-rw-------) has 24 bytes of data

objc_sharing_ppc_501 (-rw-------) has 132 bytes of data

objc_sharing_ppc_92 (-rw-------) has 24 bytes of data

photoshop_activation.plist (-rw-r--r--) has 531 bytes of data

serialinfo.plist (-rw-r--r--) has 928 bytes of data

      

这样做的优点在于,您可以使用 sed 或 Perl 完善正则表达式,并且在只包含其中某一个的系统中,您仍然可以它们。使用 Perl,您可以获得全方位的编程结构,可以充分地利用它们进行更复杂的文本处理。

总结

使用像 sed 和 Perl 这样功能强大的工具,以及神奇的正则表达式,您可以直接通过 UNIX 命令行轻松地完成复杂的文本处理任务。这使得您可以有效地将多个命令组合在一起,以正确地完成文本处理工作。

原文链接:http://www-128.ibm.com/developerworks/cn/aix/library/au-textprocess.html

如果您需转载 使用UNIX命令进行文本处理cat 和 echo,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门