Thread View: es.comp.os.linux.programacion
7 messages
7 total messages
Started by Cachorro
Sun, 30 Apr 2006 12:27
Nombres de archivos con espacios
Author: Cachorro
Date: Sun, 30 Apr 2006 12:27
Date: Sun, 30 Apr 2006 12:27
30 lines
1470 bytes
1470 bytes
Hola buenas a todos: Haciendo un script que procesa jpgs me surgi� este problema. Los jpg tienen espacios en blanco y el script interpreta que cada bloque de texto entre espacios como si fuerra un jpg. Como puedo arreglarlo ? eg imagen "de camino al jerte.jpg" salida del script Procesando => De Procesando => camino Procesando => al Procesando => jerte Codigo for i in $(ls *.jpg) do echo "Procesando => $i" #convert.... #jpgtn.... done Un saludo cachorro PD espero haberme explicado bien.
Re: Nombres de archivos con espacios
Author: Pascal Bourguignon
Date: Sun, 30 Apr 2006 13:19
Date: Sun, 30 Apr 2006 13:19
40 lines
2226 bytes
2226 bytes
Cachorro <caxorrin@gmail.com> writes:
> Hola buenas a todos:
> Haciendo un script que procesa jpgs me surgi� este problema. Los jpg tienen
> espacios en blanco y el script interpreta que cada bloque de texto entre
> espacios como si fuerra un jpg.
>
> Como puedo arreglarlo ?
man bash
es decir, si usas bash; no dices que shell usas...
#!/bin/bash
> for i in $(ls *.jpg)
for in in *.jpg
> do
> echo "Procesando => $i"
> #convert....
convert "$i" "${i}.convertido"
> #jpgtn....
jpgtn "${i}.convertido" "${i}.salida"
> done
--
__Pascal Bourguignon__ http://www.informatimago.com/
"Remember, Information is not knowledge; Knowledge is not Wisdom;
Wisdom is not truth; Truth is not beauty; Beauty is not love;
Love is not music; Music is the best." -- Frank Zappa
Re: Nombres de archivos con espacios
Author: drid
Date: Sun, 30 Apr 2006 17:51
Date: Sun, 30 Apr 2006 17:51
23 lines
1642 bytes
1642 bytes
> Hola buenas a todos: > Haciendo un script que procesa jpgs me surgió este problema. Los jpg tienen > espacios en blanco y el script interpreta que cada bloque de texto entre > espacios como si fuerra un jpg. > > Como puedo arreglarlo ? > for i in $(ls *.jpg) Cambia esta orden por la siguiente : ls *.jpg | while read i; do La orden for tiene como separador el espacio en blanco (y supongo que tambien los tabuladores. Puede que dependa de la shell). Usando la combinacion ls + while read solucionas el problema porque read utiliza como delimitador el salto de linea. Un saludo -- Drid@niako
Re: Nombres de archivos con espacios
Author: Pascal Bourguignon
Date: Sun, 30 Apr 2006 18:24
Date: Sun, 30 Apr 2006 18:24
43 lines
2781 bytes
2781 bytes
drid <drid@niako.com> writes: >> Hola buenas a todos: >> Haciendo un script que procesa jpgs me surgi� este problema. Los jpg tienen >> espacios en blanco y el script interpreta que cada bloque de texto entre >> espacios como si fuerra un jpg. >> >> Como puedo arreglarlo ? > >> for i in $(ls *.jpg) > > Cambia esta orden por la siguiente : > > ls *.jpg | while read i; do Esto no funcionara cuando hay LF in the nombres; for i in *.jpg ; do echo "$i" ; done # si. [pjb@thalassa pjb]$ mkdir /tmp/ejemplo ; cd /tmp/ejemplo [pjb@thalassa ejemplo]$ touch "$(printf 'nombre muy\n muy malo')" abc 'abc def' [pjb@thalassa ejemplo]$ for i in * ; do echo "-- $i" ; done -- abc -- abc def -- nombre muy muy malo [pjb@thalassa ejemplo]$ ls * | while read i; do echo "-- $i" ; done -- abc abc def nombre muy -- muy malo > La orden for tiene como separador el espacio en blanco (y supongo > que tambien los tabuladores. Puede que dependa de la shell). Usando > la combinacion ls + while read solucionas el problema porque read > utiliza como delimitador el salto de linea. No, no soluciona nada, porque ademas, ls * imprime varios nombres por l�nea. Habria que usar ls -1 * al menos. -- __Pascal Bourguignon__ http://www.informatimago.com/ Wanna go outside. Oh, no! Help! I got outside! Let me back inside!
Re: Nombres de archivos con espacios
Author: drid
Date: Sun, 30 Apr 2006 19:17
Date: Sun, 30 Apr 2006 19:17
32 lines
1875 bytes
1875 bytes
> Esto no funcionara cuando hay LF in the nombres; Cierto. La verdad es que no habia usado ficheros con saltos de linea en el nombre, pero tienes razon > [pjb@thalassa ejemplo]$ ls * | while read i; do echo "-- $i" ; done > -- abc abc def nombre muy > -- muy malo A mi eso me sale de forma distinta : ls * | while read i; do echo "-- $i" ; done -- abc -- abc def -- nombre muy -- muy malo Solo me falla con los saltos de linea > No, no soluciona nada, porque ademas, ls * imprime varios nombres por línea. > Habria que usar ls -1 * al menos. Otra vez tienes razon. Eso pasa por poner las cosas sin probarlas :-) Un saludo -- Drid@niako P.D. Voy que probar estas instrucciones en un SunOS, porque creo que lo del for no tira bien de esa manera. Ya os contare
Re: Nombres de archivos con espacios
Author: Pascal Bourguignon
Date: Mon, 01 May 2006 07:09
Date: Mon, 01 May 2006 07:09
65 lines
3090 bytes
3090 bytes
drid <drid@niako.com> writes:
>> Esto no funcionara cuando hay LF in the nombres;
>
> Cierto. La verdad es que no habia usado ficheros con saltos de linea
> en el nombre, pero tienes razon
>
>> [pjb@thalassa ejemplo]$ ls * | while read i; do echo "-- $i" ; done
>> -- abc abc def nombre muy
>> -- muy malo
>
> A mi eso me sale de forma distinta :
>
> ls * | while read i; do echo "-- $i" ; done
> -- abc
> -- abc def
> -- nombre muy
> -- muy malo
>
> Solo me falla con los saltos de linea
Si, porque depende de la configuraci�n de cada uno.
Tengo en mi ~/.bashrc:
alias ls='LC_COLLATE="" /bin/ls -aBCF'
/bin/ls * | while read i ; do echo "-- $i" ; done # funcionaria como lo quieres.
^^^^^
[pjb@thalassa pjb]$ cd /tmp/ejemplo/
[pjb@thalassa ejemplo]$ /bin/ls -C | cat
abc abc def nombre muy
muy malo
[pjb@thalassa ejemplo]$ /bin/ls -C -1 | cat
abc
abc def
nombre muy
muy malo
[pjb@thalassa ejemplo]$ /bin/ls
abc abc def nombre muy? muy malo
[pjb@thalassa ejemplo]$ /bin/ls |cat
abc
abc def
nombre muy
muy malo
>> No, no soluciona nada, porque ademas, ls * imprime varios nombres por l�nea.
>> Habria que usar ls -1 * al menos.
>
> Otra vez tienes razon. Eso pasa por poner las cosas sin probarlas :-)
>
> Un saludo
> --
> Drid@niako
>
> P.D. Voy que probar estas instrucciones en un SunOS, porque creo que
> lo del for no tira bien de esa manera. Ya os contare
--
__Pascal Bourguignon__ http://www.informatimago.com/
ATTENTION: Despite any other listing of product contents found
herein, the consumer is advised that, in actuality, this product
consists of 99.9999999999% empty space.
Re: Nombres de archivos con espacios
Author: Cachorro
Date: Tue, 02 May 2006 15:10
Date: Tue, 02 May 2006 15:10
15 lines
1578 bytes
1578 bytes
Muchas gracias a todos por vuestra ayuda, el script ya est� funcionando y
salvandome algo de tiempo :)
La verdad quede un tanto sorprendido de la amabilidad que por aqu� reina,
hasta me enviaron un correo con una idea bastante interesante :).
find . -name "*.jpg" \( -exec convert {} {}.salida \; -o -exec test
{}.salida \; \) -exec convert {}.salida {}.kk \;
Un saludo a todos y muchas gracias por vuestra ayuda
Cachorro.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads