web-dev-qa-db-ja.com

gsed:Homebrewを使用するmacOSでコマンドが見つかりません

私はああ私のzshを使用しています。正規表現の\ sなど、ubuntuで実行できる一部のコマンドを使用できません。私は自家製のものをインストールしてからbrew install gnu-sed --default-namesでも、sedコマンドを使用できません。私の$ PATH変数は少しめちゃくちゃになっていて、それを修正する方法がわかりません。

/Users/ishansrivastava/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin:/opt/X11/bin:/Library/TeX/texbin

Macで手間をかけずにすべてのgnuコマンドを使用できるようにするにはどうすればよいですか?また、たとえばgsedなどではなく、sedなどのデフォルトの代わりにgnuコマンドを使用する必要があるコマンドのリストを教えてください。

6

前述のように 別の質問で 、GNU sedをHomesomeと--with-default-namesを使用してインストールする場合、/usr/local/bin/sedとしてインストールされます。

--with-default-namesがない場合は、/usr/local/bin/gsedとしてインストールされます。

sedとしてインストールした場合は、sedを実行したときにsedバイナリが何を取得するかは、$PATHによって異なります。 $PATHが説明したとおりの場合、GNU sedはネイティブmacOS sedよりも優先されます。

以前に同じシェルセッションでコマンドラインでコマンドを使用したことがある場合、シェルはsedコマンドの場所を既にキャッシュしている可能性があることに注意してください。次に、rehashzshを使用してそのキャッシュをクリアするか、新しいターミナルを開きます。

システムがGNU sedではないネイティブsed実装を提供する場合、ネイティブsedに固有の動作に依存している既存のスクリプトを壊さないように、GNU gsedsedとしてインストールすることをお勧めします。 macOSでのHomebrewのデフォルトの動作では、GNU sedgsedとしてインストールするのはこのためです。これは、他のBSDシステムでGNU sed(およびGNUツール全般)に名前を付けるデフォルトの方法でもあります。

9
Kusalananda