sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #72819
Re: Script der itererer over jpg filer i et directory
Jesper Honig Spring wrote:
>
> Hej SSLUG'ere
>
> Sikkert et trivielt spoergsmaal, men jeg dumskalle nok til ikke selv at
> kunne loese problemet.
>
> Jeg har et directory med en raekke jpg filer (der er mellemrum i
> filnavnene). For hver af disse jpg filer vil jeg gerne udfoere en
> kommando, da jeg vil manipulere hvert enkelt billede. Hvordan goer jeg
> det?
>
> Jeg proevede igaar noget ala:
>
> for file in `ls *.jpg`
> do
> echo $file
> # Manipulation should be done here
> done
>
> Problemet er bare, at variablen file bliver sat til hvert enkelt ord i
> filnavnene, da der jo som sagt er mellemrum i filnavnene, og ikke hele
> filnavnet. Er der nogen som kan hjaelpe?
Den eneste løsning der er helt sikker over for sjove tegn, er at bruge \0
som sluttegn, da dette tegn også markerer slutningen af en streng i libc og
kernen. Det et heldigvis nemt at bruge, eksempelvis sådan her:
fint -type f -name '*.jpg' -maxdepth 1 -print0 | xargs -0 dit-script
Hvis du vil køre scriptet med præcis én fil som parameter per gang, brug da
"xargs -0i" i stedet for "xargs -0"
--
Mvh
Christian Iversen
References