Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: skript na premenovanie...  (Přečteno 1582 krát)

Xijo

  • Návštěvník
  • Příspěvků: 40
skript na premenovanie...
« kdy: 13 Října 2008, 13:01:59 »
Chce[m|l] som si vytvorit vlastny! skript na premenovanie suborov|priecinkov v priecinku, akurat mi to nechce urobit.... pls len povecte kde je chyba, co je blbost:

Kód: [Vybrat]
#!/bin/bash

DIR=$1

mv `ls -1 $DIR` `ls $DIR|sed "s/\ /\_/g"`
echo "ble"
exit

nettezzaumana

  • Host
Re: skript na premenovanie...
« Odpověď #1 kdy: 13 Října 2008, 13:12:48 »
to je chyba ;) .. to by fungovalo jen pro jednu polozku .. musis to udelat takto ::

Kód: [Vybrat]
#!/bin/bash

ls -1 "$1" >/tmp/filelist.tmp;
cd "$1";

while read line; do
        mv -v "$line" $(echo $line | sed 's/\ /\_/g');
done </tmp/filelist.tmp

rm /tmp/filelist.tmp
« Poslední změna: 13 Října 2008, 13:29:52 od nettezzaumana »

Xijo

  • Návštěvník
  • Příspěvků: 40
Re: skript na premenovanie...
« Odpověď #2 kdy: 13 Října 2008, 13:34:09 »
ahaa vdaka :) pomohl si :) len si tam zabudol dat prepnutie do toho priecinku :) inak by to nefachcilo :)
dak :)

nettezzaumana

  • Host
Re: skript na premenovanie...
« Odpověď #3 kdy: 13 Října 2008, 13:43:44 »
np

Xijo

  • Návštěvník
  • Příspěvků: 40
Re: skript na premenovanie...
« Odpověď #4 kdy: 13 Října 2008, 15:14:19 »
nakoniec to vyzera takto :     :D:D
Kód: [Vybrat]

#!/bin/bash

if [ $# != 1 ]
then
echo "Usage: (skript) PATH"
echo "Hromadne premenovanie suborov..."
exit
fi

if [ ! -d $1 ]
then
echo "Nezvolil si priecinok"
exit
fi


DIR=$1
ls -1 "$DIR" >/tmp/filelist.tmp
cd $DIR

select CO in '_ na mezderu' 'Medzera na  _' 'Ine...'
do
if [ "$CO" == "Ine..." ]
then
echo -n "Zadaj CO nahradit: "
read CO
elif [ "$CO" = "Medzera na _" ]
then
CO=' '
CIM='_'
elif [ "$CO" = "_ na medzeru" ]
then
CO='_'
CIM=' '
fi
if [ ! -z CO ]
then
        break;
fi

done

if [ -z $CIM ]
then
select CIM in ' ' '_' 'Ine...'
do
        if [ "$CIM" == "Ine..." ]
        then
                echo -n "Zadaj CIM nahradit: "
                read CIM
        fi
if [ ! -z CIM ]
then
break;
fi

done
fi

while read line; do
NAHRAD=$(echo $line | sed "s/$CO/$CIM/g")
mv -v "$line" "$NAHRAD" 2>/dev/null
done </tmp/filelist.tmp

rm /tmp/filelist.tmp
cd -

exit

« Poslední změna: 13 Října 2008, 16:16:23 od Xijo »

nettezzaumana

  • Host
Re: skript na premenovanie...
« Odpověď #5 kdy: 13 Října 2008, 16:57:32 »
hmm .. to manipulaci se soubory mi to '2>/dev/null' nepripada moc rozumny .. ale proti gustu, zadny disputat

ad.1) if [ ! -z CO ] // ??? coze .. nema byt :: if [ ! -z $CO ]; then ..
ad.2) stare verze bashe neznaji $#, takze je lepsi a cistsi metoda :: if [ -z $1 ] || [ ! -z $2 ]; then ..
ad.3) != je pro retezce, 'ne' je pro cisla

## to je spatne .. tohle nemuze vratit false
>  if [ ! -z XX ]; then echo fuj; fi
fuj

## takhle je to spravne
> if [ ! -z $XX ]; then echo fuj; else echo nefuj; fi
nefuj
« Poslední změna: 13 Října 2008, 17:19:36 od nettezzaumana »

nettezzaumana

  • Host
Re: skript na premenovanie...
« Odpověď #6 kdy: 13 Října 2008, 17:08:37 »
uff .. dyk to vubec nefunguje jak ma !! ;D
« Poslední změna: 13 Října 2008, 17:20:08 od nettezzaumana »

Xijo

  • Návštěvník
  • Příspěvků: 40
Re: skript na premenovanie...
« Odpověď #7 kdy: 13 Října 2008, 22:09:41 »
hmm .. to manipulaci se soubory mi to '2>/dev/null' nepripada moc rozumny .. ale proti gustu, zadny disputat

ad.1) if [ ! -z CO ] // ??? coze .. nema byt :: if [ ! -z $CO ]; then ..
ad.2) stare verze bashe neznaji $#, takze je lepsi a cistsi metoda :: if [ -z $1 ] || [ ! -z $2 ]; then ..
ad.3) != je pro retezce, 'ne' je pro cisla

## to je spatne .. tohle nemuze vratit false
>  if [ ! -z XX ]; then echo fuj; fi
fuj

## takhle je to spravne
> if [ ! -z $XX ]; then echo fuj; else echo nefuj; fi
nefuj

No ja som bol tak uceny :D :D :D
s tym -ne mas pravdu
if [];then --> then mas v dalsom riadku
else nieje povinny parameter v IF :)
2>/dev/null niekedy hodi chybu (ak nevie nahradit) ale nic zle neurobi takze preto som dal len dat het hlasku

btw mne to fachci....
este aj profesor mi povedal ze dobre :D ako tak ale...  :D
Mne to v pohode premenuva napr medzeri na _ .....

 

Provoz zaštiťuje spolek OpenAlt.