Portál AbcLinuxu, 10. května 2025 03:14

Dotaz: nazvy souboru s mezerou v bash

21.10.2007 11:36 linuxik | skóre: 32 | Milovice
nazvy souboru s mezerou v bash
Přečteno: 649×
Odpovědět | Admin
Ahoj, potrebuju udela neco jako
for i in `ls ./`
do
neco s $i
done
ale problem je ze kdyz je v nazvu souboru mezera tak to dosazuje za i casti nazvu misto celoho jmena. Da se to nejak vyresit?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.10.2007 11:41 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin

Buď for i in *; do ... nebo find a omezit hloubku prohledávání a použít parametr -exec neco s {} \;

I am always ready to learn although I do not always like to be taught. (W. Churchill)
21.10.2007 12:14 linuxik | skóre: 32 | Milovice
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Porad na to nemuzu prijit, mam adresar se spoustou fotek, ktere maji ruzne pripony (jpg Jpg JPG) a potrebuji je vsechny prejmenovat na jmeno.jpg Poradi mi nekdo?
21.10.2007 12:28 Dannny | skóre: 14
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
no prvni co me napadlo, je toto, ale neni to uplne ciste reseni, neprejmenuje se ti to, jen se ti prida pripona jpg.

$ find . -maxdepth 1 -mindepth 1 | xargs -I '{}' mv '{}' '{}'.jpg
21.10.2007 18:48 outsider
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
rename 's/[jJ][pP][gG]$/jpg/' *
21.10.2007 12:16 Dannny | skóre: 14
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja kdysi pouzil toto: find . -maxdepth 1 | sed 's_ _\\ _g' | ls -la
21.10.2007 12:17 Zaphod | skóre: 37 | blog: zaphod_blog
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Treba vždy písať namiesto $i "$i"
21.10.2007 12:35 linuxik | skóre: 32 | Milovice
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem se nastval a pomoci
for file in *\ *; do
mv "$file" "${file// /_}"
done
zmenil mezery za _ , ale kdyby mel nekdo reseni jak to udelat bez toho pjmenovani , tak sem s nim.
21.10.2007 12:48 Zaphod | skóre: 37 | blog: zaphod_blog
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
for i in *.[Jj][Pp][Gg]; do
        NAME=${i%.*}.jpg
        mv "$i" "$NAME"
done
Tento script funguje. Treba požívať správne znaky ""
21.10.2007 12:53 Ash | skóre: 53
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
for i in *; do
  echo mv \"$i\" \"${i%.*}.jpg\";
#  mv "$i" "${i%.*}.jpg";
done
21.10.2007 12:43 Martin Doucha | skóre: 23 | blog: Yet another blog
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle už se tu řešilo.
21.10.2007 13:02 linuxik | skóre: 32 | Milovice
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Dik vsem za info.
21.10.2007 14:48 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: nazvy souboru s mezerou v bash
Len tak bez uprav som to pastol do FAQ.
Project Satan infects Calculon with Werecar virus

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.