在OSX上,系统sed
似乎有时对正则表达式和一些转义字符有点限制 - 以至于我最终使用perl -pe
一段时间,并且现在我想知道我是否应该关心使用sed
。
我通常需要在连续管理大量命令时使用它,通常在执行期间多次调用sed
和perl
,并且我想知道是否应该使用{{1当它完成工作时,仅在必要时使用sed
。我从性能的角度对此感兴趣(在脚本中有多个这样的命令最终会有所不同),但如果还有其他值得提及的考虑因素,那么它们会受到欢迎
答案 0 :(得分:9)
Perl可能比sed
慢一点(但不是很多 - 它是一种非常快速的脚本语言);但是,如果Perl执行了您需要的操作而sed
没有,请使用Perl。
请注意,Perl(仍)与程序s2p
和a2p
一起分发,它们分别将sed
和awk
脚本转换为Perl。因此,您可以在sed
中设计脚本,然后自动转换为Perl(并适应利用增强的Perl正则表达式等)。