清单 16. 对输出进行重组
chrish@dhcp3 [382]$ ls -l | tail | sed -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
成功了!您已经完成了对输出结果的转换。
使用 Perl 完成相应的工作
Perl 编程和脚本语言(请参见参考资料部分)的功能非常强大,通常可用来取代前面介绍的 tr 和 sed 命令。通常可以在命令行中直接输入简短的 Perl 程序,有时它可以完成比 tr 或 sed 命令行更多的操作。
Perl 的 -p 选项告诉它读取和处理标准输入中的每行内容,并将结果打印到标准输出。-e 选项允许您在命令行中指定一个 Perl 表达式(实际上是一个程序)。
清单 17 显示了如何使用 Perl 完成清单 5 中的示例。
清单 17. 使用 Perl 完成 tr 的工作
标签: