En Mac OS 10.10.3, instalé gnu-sed escribiendo:
brew install gnu-sed --default-names
Cuando lo vuelvo a escribir, aparece el mensaje:
gnu-sed-4.2.2 ya instalado
Sin embargo, incluso después de reiniciar el sistema y reiniciar Terminal, todavía no puedo usar la versión GNU de sed. Por ejemplo:
echo a | sed ’s_A_X_i’
devuelve: bandera incorrecta en el comando de sustitución 'i'
¿Qué debo hacer para que funcione la versión GNU? Aquí están las rutas en mi variable $ PATH.
/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin
Lo siento si mi pregunta parece obvia, pero estoy aprendiendo a escribir scripts de shell por mi cuenta y todavía no entiendo cómo se instalan los programas UNIX. Cualquier ayuda para usar comandos compatibles con GNU (en este caso sed, pero pronto necesitaré otros también) en mi Mac sin causar daños o desorden innecesario sería muy apreciado.
brew
instaló GNUsed
? ¿Ese directorio está en tuPATH
? ¿Qué obtienes si escribessed --version
? (BSDsed
se quejará; GNUsed
reportará su información de versión). Hasta que no tenga elbrew
directorio en su PATH antes/usr/bin
o no aprenda a usar el nombre de ruta absoluto a GNUsed
, no estará ejecutando GNUsed
. También tenga cuidado con las comillas.’
es una cita de procesamiento de texto, a diferencia de'
.Respuestas:
Nota (2019):
La
--with-default-names
opción se eliminó desde enero de 2019, por lo que ahora esa opción ya no está disponible.Al instalar, Homebrew instruye sobre cómo adaptar la ruta, si se quiere usar sed sin el
g
prefijo.Ya tienes instalado gnu-sed sin la
--with-default-names
opción.--with-default-names
opción se instalased
en/usr/local/bin/
gsed
Entonces, en tu caso, lo que debes hacer es:
Actualice la ruta si es necesario ...
o utilizar
gsed
como otros sugirieron.fuente
Cuando instalas la versión GNU de
sed
para Mac OS X usando:El programa que usa es
gsed
.Así por ejemplo:
Además, para complementar el uso de las herramientas de comando GNU en Mac OS X, hay una buena publicación de blog aquí para obtener las herramientas de Linux:
Instale y use las herramientas de línea de comandos GNU en Mac OS / OS X
fuente
El
sed
que se envía con OS X está en formato/usr/bin
.El
sed
que sehomebrew
instala está en formato/usr/local/bin
.Si prefiere usar el
homebrew
uno, tiene dos opciones:Opción 1
Cada vez que quiera usar
homebrew
sed
, escribao, preferiblemente
opcion 2
Avanza
/usr/local/bin/
(es decir, antes)/usr/bin
en tu RUTA en tu perfil de inicio de sesión, asífuente
$ brew install gnu-sed
Con estos dos comandos gnu-sed funciona correctamente
fuente
Si necesita usar el comando gnu-sed con sus nombres normales, puede agregar un directorio "gnubin" a su PATH desde su bashrc. Simplemente use el siguiente comando en su bash o terminal.
fuente
--with-default-names
no funcionó para mí en Mac OS X 10.14.2, así que creé un enlace simbólico llamadosed
agsed
superior en el$PATH
También creé un enlace simbólico llamado
sed.1
a la página degsed.1
manual más arriba en el$MANPATH
modo queman
accedería a la página degsed
manual en lugar de la página desed
manual predeterminadafuente
alias sed=gsed
.