1 votos

Me sale un error sed: 1: "1~2d": código de comando inválido ~ cuando uso sed '1~2d' sample.txt

En la versión 11.2.2 de MacOS.

$ which sed
/usr/bin/sed

versión de sed: 4.8 SED(1)

Cuando ejecuto este código en Ubuntu, funciona.

$ sed '1~2d' sample.txt
two
four
six

Pero cuando ejecuto esto en MacOS, tanto en zsh como en bash, no funciona.

$ sed '1~2d' sample.txt
sed: 1: "1~2d": invalid command code ~

¿Por qué no funciona en MacOS?

¿Cómo puedo hacer que funcione?

[Actualización] Cuando ejecuto man sed | grep GNU, sale diciendo que Esta es una extensión de GNU.

enter image description here

6voto

Una dirección como 1~2 es una extensión de GNU, no está disponible en el BSD sed que forma parte de MacOS.

La forma más fácil de evitarlo es instalar GNU sed con

brew install gnu-sed

y luego ejecutar gsed '1~2d' sample.txt .

Si no desea instalar software adicional, consulte https://stackoverflow.com/questions/2560411/how-to-remove-every-other-line-with-sed para los enfoques alternativos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X