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

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 als gsed 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.