[gilug.org] Una mica de tecnica...
Marc Tarrés pardalet_empordanes yahoo es
2005-07-18 17:00:43 UTC
Hola!
> He fet aixo, pero no m'agrada gaire, el veig una mica basto...
> que n'opineu? :-)
>
>
> #! /bin/sh
> for p in * ; do
> o=`echo "$p" | sed s/"$1"//`
> mv "$p" "$o"
> done
Jo m'he fet aquest, que tindria una funcionalitat una mica més general
de la que descrius.
#!/bin/bash
if [ "$3" == "" ]; then
echo "Us: ren String1 String2 Fitxers";
else
for i in $3; do
j=$(echo "$i" | sed "s/$1/$2/");
if [ -e "$i" ]; then
if [ "$i" != "$j" ]; then
mv "$i" "$j";
fi
fi
done
fi
És a dir, a tots els fitxers indicats per "Fitxers", substitueix
"String1" per "String2". L'única putada és que si Fitxers conté alguna
"wildcard" (*, per ex.), aquest tercer argument s'ha de passar entre
cometes, perquè sinó el bash el resòl i al for només li arriba el primer
fitxer que compleixi la condició de Fitxers.
Espero que sigui d'utilitat, al mateix temps que aprofito per preguntar
si algú sap com evitar haver de posar les cometes aquestes. Mercès!
--
Marc Tarrés Deulofeu
----------------------------------
pgp_public_key_id: 90FC814B
----------------------------------
Més informació sobre la llista de correu gilug