私はああ私の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コマンドを使用する必要があるコマンドのリストを教えてください。
前述のように 別の質問で 、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
コマンドの場所を既にキャッシュしている可能性があることに注意してください。次に、rehash
のzsh
を使用してそのキャッシュをクリアするか、新しいターミナルを開きます。
システムがGNU sed
ではないネイティブsed
実装を提供する場合、ネイティブsed
に固有の動作に依存している既存のスクリプトを壊さないように、GNU gsed
をsed
としてインストールすることをお勧めします。 macOSでのHomebrewのデフォルトの動作では、GNU sed
をgsed
としてインストールするのはこのためです。これは、他のBSDシステムでGNU sed
(およびGNUツール全般)に名前を付けるデフォルトの方法でもあります。