我经常看到答案提到egrep
isgrep -E
或fgrep
isgrep -F
并在他们的答案中使用egrep
or fgrep
,即使这些在技术上已被弃用。
所以我想知道是否有现代(ish)类unix系统的特定示例不提供命令集之间的这种链接。例如,GNU grep 手册包含
此外,还有两个变体程序 egrep 和 fgrep 可用。egrep 与“grep -E”相同。fgrep 与“grep -F”相同。不推荐使用 egrep 或 fgrep 直接调用,但提供它是为了允许依赖它们的历史应用程序在未经修改的情况下运行。
而 FreeBSD 有
此外,还有两个变体程序 egrep 和 fgrep 可用。egrep 与 grep -E 相同。fgrep 与 grep -F 相同。
很高兴知道脚本不一定在任何地方都可以工作,即使明天egrep
或可能会被删除。fgrep
我不认为有任何系统明确没有它们(但我现在没有任何现代商业 UNIX 系统可供查看,只有开源系统),但它们有很多只需
grep
使用适当的选项调用常规的存根即可。例如,在 Gentoo Linux 上,
/bin/egrep
这个 shell 脚本是:并且
/bin/fgrep
本质上是一样的。我还见过一些系统,其中egrep
和fgrep
只是符号链接或硬链接grep
,但我从未见过它们都没有出现的系统。但是请注意,虽然
egrep
和fgrep
已被弃用,但它们几乎肯定不会很快消失。在我的笔记本电脑(运行 Gentoo Linux)上快速扫描脚本/usr
会发现几十个软件包,其中包含使用其中一种或另一种的脚本,包括 Python 和 GCC 等无处不在的东西。鉴于这一切,我们可以相当讽刺地得出结论,使用已弃用的命令而不是选项的代码实际上比使用选项的代码更具可移植性,因为它可以在使用选项的代码的旧系统上运行。