kit*_*une 4 regex macos bash terminal find
我尝试在Mac OS X 10.9终端上执行此命令:
find / -type f -regextype posix-extended -regex "(.*A.*a.*.*)|(.*a.*A.*.*)" -exec tail -n 3 '{}' \;
Run Code Online (Sandbox Code Playgroud)
但Bash v 3.2的回应是:
find: -regextype: unknown primary or operator
Run Code Online (Sandbox Code Playgroud)
我在终端联机页面上进行了深入搜索:
man find
man regex
Run Code Online (Sandbox Code Playgroud)
等等...
但我一无所获.是否应该更新Mac OS X Bash v3.2?似乎"-regextype"选项不包含在"find"中.
我该如何解决?
ps该命令在Ubuntu Linux 14上运行完美.
Chr*_*ver 11
对您的问题最简单的答案是,在OS X上,您需要使用-E选项而不是-regextype posix-extended
即:
发现/型的F -regextype POSIX扩展 -regex "(*A.一个. |.*)(*一个.A. -exec尾-n 3 '{}'\*.)";
变为:
找到-E /型的F -regex "(*A.一个..*)|(*一个.A.*)." -exec尾-n 3 '{}' \;
除了-exec tail抱怨的命令外,上面的内容适用于我的10.10安装.
这实际上由手册页的第一个条目覆盖:
The options are as follows:
-E Interpret regular expressions followed by -regex and -iregex primaries as extended (modern) regular expressions rather than basic
regular expressions (BRE's). The re_format(7) manual page fully describes both formats.
Run Code Online (Sandbox Code Playgroud)