nicht gefunden Ich verwende oh my zsh. Ich kann einige Befehle, die ich unter Ubuntu ausführen könnte, nicht verwenden, z. B. in regulären Ausdrücken. Ich habe Home-Brew und dann brew install gnu-sed --default-names
installiert, kann aber den Befehl sed immer noch nicht verwenden. Meine $ PATH-Variable ist etwas durcheinander und ich bin nicht sicher, wie ich sie korrigieren soll.
/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
Was soll ich tun, damit ich alle gnu-Befehle verwenden kann? Bitte geben Sie mir auch die Liste der Befehle, für die ich den Befehl gnu anstelle des Standardbefehls verwenden muss, z. B. gsed
anstelle von sed
usw.
Kommentare
- Verwandte Themen: stackoverflow.com/questions/30003570 / …
Antwort
Wie bereits erwähnt in einer anderen Frage , wenn GNU sed
mit Homebrew mit --with-default-names
installiert wird Dann wird es als /usr/local/bin/sed
installiert.
Ohne --with-default-names
wird es als .
Wenn als sed
installiert, hängt dies von Ihrer $PATH
what sed
Binärdatei wird aufgenommen, wenn Sie sed
ausführen. Wenn Ihre $PATH
wie von Ihnen beschrieben ist, sollte GNU sed
Vorrang vor dem nativen macOS sed
.
Beachten Sie, dass die Shell möglicherweise die Position des Befehls sed
bereits zwischengespeichert hat, wenn Sie den Befehl zuvor in derselben Befehlszeile verwendet haben Shell-Sitzung. Sie können dann rehash
in zsh
verwenden, um diesen Cache zu leeren oder ein neues Terminal zu öffnen.
Wenn ein System bietet eine native sed
-Implementierung, die nicht GNU sed
ist. Dann ist es häufig besser, GNU sed
als gsed
, um vorhandene Skripte nicht zu beschädigen, basierend auf dem Verhalten, das für das native sed
spezifisch ist. Aus diesem Grund besteht das Standardverhalten bei Homebrew unter macOS darin, GNU sed
als gsed
zu installieren. Dies ist auch die Standardmethode zum Benennen von GNU sed
(und GNU-Tools im Allgemeinen) auf anderen BSD-Systemen.
Kommentare
- Ich habe es gelöst. Anscheinend wurde es in
usr/local/Cellar/gnu-sed/4.4/bin
installiert. Ich fügte dem Pfad hinzu. Trotzdem hätte ich gerne gsed verwendet, anstatt zu ändern, was mein tatsächliches Sed getan hat. - @IshanSrivastava Ich ' bin kein Homebrew-Benutzer, würde aber nicht ' t ohne
--with-default-names
können Sie GNU Sed alsgsed
verwenden? - Ich habe es mit Standardnamen installiert. Ich verstehe dich endlich. Entschuldigen Sie die Umstände. Aber warum wurde es auf einem so umständlichen Pfad wie meinem installiert?
- @IshanSrivastava Einige Informationen hier: rkulla.blogspot.se/2014/03/the -path-to-homebrew.html