新しいバージョンの OS X ではサポートされなくなったようでgrep -P
、そのため一部のスクリプトが動作しなくなりました。例:
var1=`grep -o -P '(?<=<st:italic>).*(?=</italic>)' file.txt`
\K
grep の結果を変数にキャプチャし、ゼロ幅アサーションを使用する必要があります。また、次のことも必要です。
var2=`grep -P -o '(property:)\K.*\d+(?=end)' file.txt`
代替案があれば、ぜひご提示ください。
ベストアンサー1
スクリプトを自分専用にする場合は、grep
以下からインストールできます。homebrew-core
使用してbrew
:
brew install grep
ggrep
その後、 (GNU )として利用できるようになりますgrep
。システムを置き換えるものではありませんgrep
( のシステム grep の前にインストールした grep を置く必要がありますPATH
)。
によってインストールされたバージョンにはオプションbrew
が含まれている-P
ため、スクリプトを変更する必要はありません。
これらのコマンドを通常の名前で使用する必要がある場合は、次のように bashrc から PATH に「gnubin」ディレクトリを追加できます。
PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
この行を ~/.bashrc または ~/.zshrc にエクスポートして、新しいセッション用に保持することができます。
参照してくださいここ--with-default-names
古いオプションとその(最近の)削除の長所と短所について議論します。