shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Script interpreta nomes de arquivos com espaços como strings diferentes


From: Priscila
Subject: Script interpreta nomes de arquivos com espaços como strings diferentes
Date: Tue, 01 Feb 2005 02:54:33 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040618

Fiz um script que renomeia arquivos em massa,usando os seguintes argumentos:
script arquivos ext=extensao
O problema está no fato de ocorrer erros com arquivos que contenham espaços( mesmo protegendo todas as variáveis com aspas).. A cada espaço que há no arquivo o for interpreta como sendo uma string,assim um arquivo do tipo "blah blih.txt" conteria duas strings.
#!/bin/bash
bla=0
if [ $# -lt 2 ] ;then echo "necessita de mais de 2 argumentos" ; exit
fi
ext=$( echo "$@" |  sed 's/.*\(ext=[aA-zZ]\{3\}\).*/\1/g;'s/ext=//g'')
for var in "$@" ; do
if [ -d "$var" ] ; then continue ; fi
case "$var" in
$0 ) continue ;;
ext=* ) continue ;;
* ) if [ -e "$var" ] ; then true ; else echo "arquivo nao existente" ; continue ; fi ; mod=$(echo "$var" | sed 's/\..\+//g' ) ;echo " $var - > $mod.$ext" ; mv "$var" "$mod.$ext" ; ((bla++));;
esac
done
echo "Quantidade de arquivos renomeados: $bla"

Desde já agradeço pela ajuda,
                           Priscila.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]