Wie installiere ich GNU-sed?

1

Ich versuche, GNU sed zu installieren. Im Anschluss dieser Beitrag Ich tat

brew install gnu-sed

A priori ging es gut, aber dann der Befehl gsed wurde nicht gefunden. Ich konnte keine finden gnu-sed (oder gleichwertig) in /usr/local/bin/ außer dem Standard sed.

Ich arbeite unter Mac OS X 10.11.3

Remi.b
quelle
Versuchen Sie es mit find zu finden es. Verwenden Sie im Terminal den folgenden Befehl: find /usr -type f -name *sed
user3439894
Auf diese Weise suchen und diejenigen auswählen, die den Begriff enthalten gnu, Ich fand /usr/local/Cellar/gnu-sed/4.2.2/bin/sed. Sollte ich nur diese Datei verschieben /usr/local/bin/? Vielen Dank
Remi.b
Die OS X BSD Version sollte sein /usr/bin/sedDaher sehe ich keinen Grund, warum Sie die GNU-Version nicht kopieren / verschieben können /usr/local/bin/. Das heißt, je nachdem, was in Ihrem ist PATH Das erste ist das, das ausgeführt wird, wenn Sie nichts tun, um die beiden zu unterscheiden. Nennen Sie vielleicht die GNU-Version gsed.
user3439894
Muss ich nur die Datei umbenennen sed zu gsed den Befehl umbenennen?
Remi.b
Der Dateiname und der Befehlsname sind im Wesentlichen identisch. Sie können die Datei also umbenennen oder nicht, das liegt ganz bei Ihnen. Sie können die Datei auch einfach so belassen, wie sie ist, und einen Symlink dazu erstellen, der den gewünschten Namen hat. Wenn Sie beide benannt lassen sed und beide sind in der PATH, dann wird einer über den anderen laufen, basierend auf dem PATH. Wenn Sie nicht verstehen, was ich sage, müssen Sie etwas googeln.
user3439894

Antworten:

4

Es scheint, dass die brew Linkprozess konnte nicht erfolgreich vom Keller zu verknüpft werden /usr/local/bin.

Überprüfen wir zunächst, ob es installiert ist. Versuchen brew list und Sie erhalten eine Liste der installierten Formeln. Ob gnu-sed Ist da drin dann ist es okay installiert. Wenn nicht, dann lauf brew install gnu-sed wieder und du solltest okay sein.

Wenn es in der Liste enthalten ist, versuchen Sie es zu verknüpfen und sehen Sie, welche Ausgabe Sie erhalten. brew link gnu-sed werde dies tun. Die Verbindung sollte in Ordnung sein, und Sie können loslegen.

Tony Williams
quelle
Vielen Dank. Ich habe getan, wie du gesagt hast. Ich habe auch einen relinked gnu-sed ( brew unlink gnu-sed && brew link gnu-sed ) und bekam Unlinking /usr/local/Cellar/gnu-sed/4.2.2... 3 symlinks removed;Linking /usr/local/Cellar/gnu-sed/4.2.2... 3 symlinks created. Allerdings die Befehle gnu-sed und gsed werden immer noch nicht gefunden und ich glaube nicht das sed Befehl wurde ersetzt.
Remi.b
Sind Sie sicher, dass /usr/local/bin ist in deinem PATH?
Tony Williams
Wenn ich es tue echo $PATH Ich bekomme /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin das scheint ziemlich schlimm. Alle anderen Bash-Befehle funktionieren jedoch einwandfrei.
Remi.b
OK, dein PFAD ist in Ordnung. Existiert / usr / local / bin / gsed? Was passiert wenn du cd /usr/local/bin und dann ln ../Cellar/gnu-sed/4.2.2/bin/gsed /usr/local/bin/gsed ?
Tony Williams
/usr/local/bin/gsed ist nicht vorhanden. Ich habe nur /usr/local/bin/sed. /usr/local/Cellar/gnu-sed/4.2.2/bin/gsed existiert auch nicht. Ihre ln Befehl kehrt daher zurück No such file or directory. Danke, dass du mit meinem Problem Schritt gehalten hast :)
Remi.b