【发布时间】:2016-02-18 02:29:06
【问题描述】:
我尝试在 CentOS 7 上使用 fortune-mod 版本 9708 来仅显示 oneliners。所以我需要防止在第二行显示作者的命运。 所以这个财富是我不想看到的:
> fortune -s -n 65
Whip me. Beat me. Make me maintain AIX.
-- Stephan Zielinski
作为测试,我尝试了“邪恶”。这是所有包含邪恶的命运的结果:
> fortune -s -n 65 -m Evil
(bofh-excuses)
%
Evil dogs hypnotized the night shift
%
(paradoxum)
%
Evil isn't all bad.
%
那么,我如何才能获得不含“邪恶”的财富。 我试过了:
> fortune -s -n 65 -m ((?!Evil).)*
> fortune -s -n 65 -m ((?\!Evil).)*
> fortune -s -n 65 -m "((?!Evil).)*"
> fortune -s -n 65 -m '((?!Evil).)*'
还有更多组合。用一个 !打破命令。逃避它似乎不起作用。任何提示如何实现这一点?
【问题讨论】:
-
您需要引用您的模式,或者您的模式由 bash 解释,而不是作为命令行参数传递。另外,我不确定 pcre 是否被理解(很可能不是)。
-
Als 尝试使用引号(已编辑问题)
-
啊,好吧,没有pcre绝对没有排除字符串的方法?
-
如果我们在这里谈论 BRE/ERE,那么就没有负面的前瞻/后瞻。但是,您不能编写一个使用
while循环的函数包装器来获得没有Evil(或任何模式,就此而言)的格言吗? -
好吧,如果没有其他办法,我想我可以。感谢您的帮助!
标签: regex bash scripting escaping