GNU/Linux >> Tutoriales Linux >  >> Linux

el comando sed con la opción -i falla en Mac, pero funciona en Linux

Creo que en OS X cuando usa -i, se requiere una extensión para los archivos de copia de seguridad. . Prueba:

sed -i .bak 's/hello/gbye/g' *

Usando GNU sed la extensión es opcional .


Si usa el -i opción que necesita para proporcionar una extensión para sus copias de seguridad.

Si tienes:

File1.txt
File2.cfg

El comando (tenga en cuenta la falta de espacio entre -i y '' y el -e para que funcione en nuevas versiones de Mac y GNU):

sed -i'.original' -e 's/old_link/new_link/g' *

Cree 2 archivos de copia de seguridad como:

File1.txt.original
File2.cfg.original

No existe una forma portátil de evitar hacer copias de seguridad porque es imposible encontrar una combinación de comandos sed que funcione en todos los casos:

  • sed -i -e ... - no funciona en OS X ya que crea -e copias de seguridad
  • sed -i'' -e ... - no funciona en OS X 10.6 pero funciona en 10.9+
  • sed -i '' -e ... - no funciona en GNU

Nota Dado que no hay un comando sed que funcione en todas las plataformas, puede intentar usar otro comando para lograr el mismo resultado.

Por ejemplo, perl -i -pe's/old_link/new_link/g' *


Linux
  1. Reemplace las comillas tipográficas con el comando sed de Linux

  2. Comando Linux Tee con ejemplos

  3. Cómo usar el comando Sed en Linux con ejemplos

  4. Comando de cabeza de Linux con ejemplos

  5. ¿Hay un comando de Linux como mv pero con expresiones regulares?

Comando ip de Linux con ejemplos

Comando Tr en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Uso del comando sed de Linux con ejemplos