Problema con sed utilizada en varios archivos
jil
-
jil -
jil -
Hola,
estoy tratando de reemplazar una cadena de caracteres por otra en todos los archivos de texto de un directorio dado utilizando sed, pero obtengo el siguiente mensaje de error:
sed: no se puede leer /home/moi/data-limit/Lien vers data/TEST/*.txt: No existe el archivo o el directorio
aquí está el comando en cuestión:
sed -i -e 's/S1c \/ R1c/NA/g' '/home/moi/data-limit/Lien vers data/TEST/*.txt'
gracias por cualquier consejo...
debo añadir que funciona si lo hago archivo por archivo especificando el nombre del archivo... No parece estar dispuesto a aceptar el asterisco para tratar todos los archivos de texto del directorio.
estoy tratando de reemplazar una cadena de caracteres por otra en todos los archivos de texto de un directorio dado utilizando sed, pero obtengo el siguiente mensaje de error:
sed: no se puede leer /home/moi/data-limit/Lien vers data/TEST/*.txt: No existe el archivo o el directorio
aquí está el comando en cuestión:
sed -i -e 's/S1c \/ R1c/NA/g' '/home/moi/data-limit/Lien vers data/TEST/*.txt'
gracias por cualquier consejo...
debo añadir que funciona si lo hago archivo por archivo especificando el nombre del archivo... No parece estar dispuesto a aceptar el asterisco para tratar todos los archivos de texto del directorio.
2 respuestas
-
Hola,
Los espacios en la ruta no le gustan (él = GNU/Linux) ;-(
A elección, o proteges los espacios o los pones entre comillas:/home/moi/data-limit/Enlace\ hacia\ datos/TEST/ *.txt /home/moi/data-limit/'Enlace hacia datos'/TEST/ *.txt
Pequeños consejos:
- Antes de usar la opción "-i", es mejor probar sin antes, o entonces preferir "-i.bak" para asegurarte de tener una copia de seguridad ;-\
- Cuando se actúa sobre varios archivos a la vez, la opción "-s" puede resultar muy útil.
--
Zen mis nuggets ;-)
Haz un gesto por el medio ambiente, cierra tus ventanas y adopta un pingüino. -
Hola y gracias por tu respuesta, pero es extraño porque sin protección de los espacios, con un solo archivo, funciona muy bien.
Tal vez aclare un poco más que ejecuto este comando a través de la orden system en el software Octave, lo que permite llamar a los comandos clásicos de linux en este programa.
Así que tengo una especie de doble restricción sobre los caracteres especiales...
Y desde ahí, bueno, yo