Failide massiline ümbernimetamine
Kui sul on ühes kataloogis n faili, mis oleks vaja kõik korraga ümber nimetada, siis saab seda teha nii (sisestatud käsud on boldis)
duke@debian:~/kala$ ls -d *
fail1 fail2 fail3
duke@debian:~/kala$ ls -d * | sed ’s/\(.*\)$/mv “&” “\1.jpg”/’ prooviks
mv “fail1″ “fail1.jpg”
mv “fail2″ “fail2.jpg”
mv “fail3″ “fail3.jpg”
duke@debian:~/kala$ ls -d * | sed ’s/\(.*\)$/mv “&” “\1.jpg”/’ | sh
duke@debian:~/kala$ ls -d *
fail1.jpg fail2.jpg fail3.jpg
Olemas. Tõsi, see näide käis failide laiendi andmise kohta. Kui on vaja ümber nimetada, siis on käsurida natuke teistsugune.
duke@debian:~/kala$ ls -d *.bas | sed ’s/\(.*\).bas$/mv “&” “\1.exe”/’ | sh





Comments
for i in `ls`; do mv $i $i.jpg; done
touch “teie lahendus on kalane”
ja asju hakkab juhtuma;)
sed’i lahendust see ei mõjuta.
wingi omale argumentidele jutumärgid ümber ja peaks ka töötama
no ekskjuus mii, ma kirjutasin selle kah otse siia, ilma reaalselt testimata, küündimatu skriptikuuru (justnimelt kuuru, mitte guru) nagu ma olen… :)
aaaga sellest sed’i pudrust ei saa ma küll mõmmigi aru :)
Veel üks kasulik reake siia kirja (et pärast oleks hea koht kust leida), kui on mureks näiteks mingite failinimede alguste ümbernimetamine kole_algus*.jpg -> ilus_algus*.jpg:
for i in `ls *.jpg` ; do mv $i ${i/kole_algus/ilus_algus}; done
Sorry, comments are closed.