[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Script interpreta nomes de arquivos com espaços como strings diferentes,
Priscila <=