Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejecutar Comando Con Una Lista De Archivos O Directorios Contenidos En Un F...
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejecutar Comando Con Una Lista De Archivos O Directorios Contenidos En Un Fichero(Solucionado) 
 
Hola Comunidad!.

A ver si me explico correctamente. Veréis tengo un archivo de texto que contiene una lista de directorios.

Ejemplo,el archivo se llama lista.txt y su contenido es este:

Citar:

/home/javier/Prueba/
/home/javier/Prueba2/


Lo que hago es ejecutar esto en solo una linea de comando:

ls -l $(cat lista.txt)
 


Lo que veis detrás del símbolo dolar es como una variable, el contenido de la variable es cada directorio de la lista.
se ejecuta dos veces, una por cada directorio. Cat muestra cada linea del archivo.

Bien. Lo que veo.Si yo hago.

ls -l ~/Prueba
 


Se entiende que lista el directorio home del usuario con su subdirectorio Prueba
y lo muestra sin problema. Si el contenido del archivo lista.txt hubiese sido:

Citar:

~/Prueba/
~/Prueba2/


No me funciona. Parece interpretar literalmente "~"

¿ Alguien sabe  que ocurre con esto ?. No lo veo lógico por que cada nombre de una home puede variar.
En este caso, tampoco todos los usuarios van a tener esos nombres de directorios.

La cosa es que a veces una aplicación puede crear una lista de archivos creados y puede que no traiga
desinstalador, entonces si tengo esa lista solo tengo que usar algo parecido a la linea de arriba.

Lo mismo es el tipo de interprete el problema.Tan solo es una linea de comando.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 02 Febrero 2013, 09:55; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Comando Con Una Lista De Archivos O Directorios Contenidos En Un Fichero 
 
El guión ~ es una convención que el intérprete de comandos procesa antes de enviar el parámetro al comando indicado. Si tú ya has ejecutado el comando (cat en el ejemplo) y ya le has pasado el parámetro, que es la lista, el momento para ese preprocesado ya ha pasado.
En este caso creo que deberías usar en tu shellscript la variable $HOME sumada al path de los ficheros... o algo así.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Comando Con Una Lista De Archivos O Directorios Contenidos En Un Fichero 
 
no logre encontrar el codigo exacto
pero cuando lo hice
fue mas o menos asi
basicamente fue
leer el archivo linea por linea
y un bucle do

  

cat lista.txt | while read linea
        do

echo $linea
        done

 

 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Comando Con Una Lista De Archivos O Directorios Contenidos En Un Fichero 
 
Gracias a los dos.

No tenia ni idea de que existía el comando read en bash
Sabia lo del bucle, pero me faltaba lo principal, la lectura línea a línea.

Es otra posibilidad.Lo hice de esta manera para que listase  los directorios.

for linea in $(cat lista.txt)
do
  ls -l $HOME$linea;
done
 


Parece que $HOME es mas común que decir ~

P.d Me estoy dando cuenta que el diccionario no me corrige todas las palabras.Por ejemplo línea.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron