Wie installiere ich GNU-sed?

Ich versuche, GNU sed zu installieren. Nach diesem Beitrag habe ich es getan

brew install gnu-sed

A priori ging es gut, aber dann wird der Befehl gsednicht gefunden. Ich konnte keine gnu-sed(oder gleichwertige) in finden /usr/local/bin/, außer der Standard sed.

Ich verwende Mac OS X 10.11.3

Versuchen Sie, es findzu finden . Verwenden Sie im Terminal den folgenden Befehl:find /usr -type f -name *sed
Als ich auf diese Weise suchte und diejenigen auswählte, die den Begriff enthielten gnu, fand ich /usr/local/Cellar/gnu-sed/4.2.2/bin/sed. Soll ich diese Datei einfach nach verschieben /usr/local/bin/? Danke
Die OS X BSD-Version sollte sein /usr/bin/sed, daher sehe ich keinen Grund, warum Sie die GNU-Version nicht kopieren/verschieben können /usr/local/bin/. Das heißt, je nachdem, welcher in Ihrem PATHersten ist, wird derjenige ausgeführt, wenn Sie nichts tun, um die beiden zu unterscheiden. Rufen Sie vielleicht die GNU-Version an gsed.
Muss ich nur die Datei umbenennen, sedum gsedden Befehl umzubenennen?
Der Dateiname und der Befehlsname sind im Wesentlichen dasselbe, also können Sie die Datei umbenennen oder nicht, das liegt an Ihnen. Sie können die Datei auch einfach dort lassen, wo sie ist, und einen Symlink mit einem beliebigen Namen erstellen. Wenn Sie beide benannt lassen sedund beide in sind PATH, dann wird einer den anderen basierend auf überlaufen PATH. Wenn Sie nicht verstehen, was ich sage, dann müssen Sie etwas googeln.
Ich weiß zwar nicht, was das PATHist, aber ich werde das morgen untersuchen. Ich werde morgen auch versuchen, diese Datei zu verschieben (ich bin jetzt nicht auf demselben Computer). Ich denke, Sie können aus Ihren Kommentaren eine Antwort machen, wenn Sie möchten. Vielen Dank!

Antworten (1)

Es scheint, dass der brewVerknüpfungsprozess nicht erfolgreich vom Cellar zu verknüpft wurde /usr/local/bin.

Lassen Sie uns zuerst überprüfen, ob es installiert ist. Probieren Sie es aus brew listund Sie erhalten eine Liste der installierten Formeln. Wenn gnu-sedda drin ist, dann ist es in Ordnung installiert. Wenn dies nicht der Fall ist, führen Sie es brew install gnu-sederneut aus, und Sie sollten in Ordnung sein.

Wenn es in der Liste ist, versuchen Sie es zu verknüpfen und sehen Sie, welche Ausgabe Sie erhalten. brew link gnu-sedwerde dies tun. Es sollte in Ordnung sein und Sie werden loslegen und laufen.

Danke. Ich habe es so gemacht, wie du es gesagt hast. Ich habe auch ein neu verknüpftes gnu-sed ( brew unlink gnu-sed && brew link gnu-sed) getrennt 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. Die Befehle gnu-sedund gsedwerden jedoch immer noch nicht gefunden und ich glaube nicht, dass der sedBefehl ersetzt wurde.
Bist du sicher, dass das /usr/local/binbei dir steht PATH?
Wenn ich das echo $PATHbekomme, /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbinscheint es ziemlich schlimm zu sein. Alle anderen Bash-Befehle funktionieren jedoch einwandfrei.
OK, Ihr PATH ist in Ordnung. Existiert /usr/local/bin/gsed? Was passiert, wenn Sie cd /usr/local/binund dann ln ../Cellar/gnu-sed/4.2.2/bin/gsed /usr/local/bin/gsed?
/usr/local/bin/gsedist nicht vorhanden. Ich habe nur /usr/local/bin/sed. /usr/local/Cellar/gnu-sed/4.2.2/bin/gsedgibt es auch nicht. Ihr lnBefehl gibt daher zurück No such file or directory. Danke, dass du mein Problem weiterverfolgst :)