如果你想要一个带有perl风格的正则表达式的sed,似乎有两种方法可以做到:
ssed -R
perl -pe
为此目的,是否有任何理由更喜欢一种工具而不是另一种工具?它们都支持 -i 标志。我假设它们使用相同的 perl 正则表达式库,因此可能具有相似的性能和相同的功能和错误。现代 UNIX 机器上不安装 perl 似乎很罕见。
答案1
ssed
比 二进制小得多perl
。 /usr/bin/ssed
是 123K,PCRE 静态链接。 /usr/bin/perl
为 1.7M,这不包括随其安装的任何标准模块。
ssed
可以安装在小型发行版或救援/安装程序 ISO 上,但也perl
可能不安装。不过,很难看出这一点,因为 PCRE 主要只是一种方便 - 无需太多额外的工作,普通的基本或扩展正则表达式sed
就可以完成 PCRE 的大部分功能......这将节省另外 123K 的空间。
不太重要的是,ssed
也可能比 更快perl
,至少在启动开销方面是这样。编译perl
脚本的速度并不快。这可能仅在具有重复调用 ssed 或 perl 的 for/while 循环的 shell 脚本中才有意义。