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.

brewinstaló GNUsed? ¿Ese directorio está en tuPATH? ¿Qué obtienes si escribessed --version? (BSDsedse quejará; GNUsedreportará su información de versión). Hasta que no tenga elbrewdirectorio en su PATH antes/usr/bino 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-namesopció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
gprefijo.Ya tienes instalado gnu-sed sin la
--with-default-namesopción.--with-default-namesopción se instalaseden/usr/local/bin/gsedEntonces, en tu caso, lo que debes hacer es:
Actualice la ruta si es necesario ...
o utilizar
gsedcomo otros sugirieron.fuente
Cuando instalas la versión GNU de
sedpara 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
sedque se envía con OS X está en formato/usr/bin.El
sedque sehomebrewinstala está en formato/usr/local/bin.Si prefiere usar el
homebrewuno, tiene dos opciones:Opción 1
Cada vez que quiera usar
homebrewsed, escribao, preferiblemente
opcion 2
Avanza
/usr/local/bin/(es decir, antes)/usr/binen tu RUTA en tu perfil de inicio de sesión, asífuente
$ brew install gnu-sedCon 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-namesno funcionó para mí en Mac OS X 10.14.2, así que creé un enlace simbólico llamadosedagsedsuperior en el$PATHTambién creé un enlace simbólico llamado
sed.1a la página degsed.1manual más arriba en el$MANPATHmodo quemanaccedería a la página degsedmanual en lugar de la página desedmanual predeterminadafuente
alias sed=gsed.