fgrepまたはgrep -Fのどちらが移植可能なスクリプトに適していますか? [閉鎖]

fgrepまたはgrep -Fのどちらが移植可能なスクリプトに適していますか? [閉鎖]

これに対する私の議論の余地がある意見この回答使用すべきかどうかに関する質問にまたは-F携帯性のためのスイッチ(例)が付属していますgrep -F。現在までに明らかになった主な内容は次のとおりです。

grep -F:

  • POSIX標準です。
  • GNUはサポートの中止をgrep発表しましたfgrep

fgrep:

  • 歴史的に、これはgrep -Fオプションの前に来ます。
  • GNU grepは廃止予定であるとfgrep宣言されていますが、歴史的使用のために依然として固執しているようです。

古い(非常に古い)システムについて考えると、一部のシステムはそうではないことがわかりますgrep -F(これが起こる可能性は非常にまれであると思います)。しかし、本当に非常に古いマシンを心配し、それに対するPOSIX標準を避ける必要がありますか?

以前のシステム(使用できないと言われる、または主張されているgrep -F)を含む現在の状況を考慮すると、サポートされているシステムがたくさんありますfgrep

一方、将来を見据えたら、これはPOXIS標準としてfgrep歴史と勝利になります。grep -F

また、より良い移植性のためにPOSIX標準を使用することは常識ではありませんか?

ベストアンサー1

grep -FPOSIXです。fgrepいいえ。スクリプトを使用しgrep -FてPOSIXに依存していることを明確にしてくださいgrep。必要なのは明示的に宣言された依存関係だけです。

どちらを使っても構いません...

if    command -v fgrep 
then  _grepf(){ fgrep "$@"; }
else  _grepf(){ grep -F "$@"; }
fi    >/dev/null

...しかし、そのようなことをするのは面倒で、通常は時間の無駄です。依存関係リストで最も低い一貫性レベルを設定し、標準が残りを処理できるようにします。

おすすめ記事