Linuxのように、すべてのすばらしい機能とRegExのすべての機能を備えたgrepを使用しようとしていますが、Mac OSXでは期待どおりに機能しません。
「-P」(Perl Regex)を使用すると、「usage」(-help)出力が表示されます。そこでは、パラメータのリスト「-abcDEFGHhIiJLlmnOoPqRSsUVvwxZ」に「-P」パラメータがあります...まだ機能していません。
別の例は、アスタリスクまたはプラス記号です。私はこれを試しています http://wiki.bash-hackers.org/howto/conffile
命令が使用する不適切なコンテンツがないか構成ファイルを確認するには、次のようにします。
if egrep -q -v '^#|^[^ ]*=[^;]*' "$configfile"; then
echo "Config file is unclean, cleaning it..." >&2
# filter the original to a new file
egrep '^#|^[^ ]*=[^;&]*' "$configfile" > "$configfile_secured"
configfile="$configfile_secured"
fi
そして、それはこのような行では機能しません:
DATABASE=some_database; ls -la
私は何が間違っているのですか?これはすべて、Linuxマシンでは問題なく機能します。
ubuntu(まあ、私が横に座っている私の古代のubuntu 8ボックス…):
$ grep -V
GNU grep 2.5.3
OS X:
$ grep -V
grep (BSD grep) 2.5.1-FreeBSD
ええ;それらは異なるプログラムです。 OSXはLinuxではありません。それはBSDに基づいています。
GNUバージョンのgrepとそのさまざまな拡張機能が必要な場合は、 Homebrew を使用して簡単にインストールできます。
OSXではデフォルトでFreeBSDgrep
があり、Linuxでは通常GNU grep
。
以下のリソースは、GNU grepがより良い(そしてより速い)ように見える理由を説明するかもしれません:
Mac OS XはBSDに基づいており、使い慣れたGNUツールを使用しません。 POSIX grep を読んだのは、GNU拡張機能がないと、理由もなく動揺し続けるからです。あなたが慣れている正確な方法ではなく、すべてがまだ可能であるはずです。