Βοήθεια για script μετονομασίας αρχείων

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό c7p » 30 Μάιος 2010, 19:21

Μετά από ενάμιση χρόνο έχω γεμίσει από αρχεία ebooks και τα αντίστοιχα αρχεία NFO (info) τους .. :shifty:
Ήρθε η ώρα να μπουν όλα σε τάξη! Κάθε pdf βρίσκεται μαζί με το αντίστοιχο αρχείο nfo του σε διαφορετικό φάκελο. Θέλω να φτιάξω ένα script με το οποίο να μετονομαστούν όλα κάθε αρχείο .nfo και να έχουν το ίδιο όνομα με τo pdf που συνοδεύουν (στην ουσία θα διαφέρουν μόνο απο την κατάληξη book.pdf =! book.nfo).

Η κατάσταση στον φάκελο με τα ebooks είναι ως εξής:
Κώδικας: Επιλογή όλων
$ls
/linux.programming/linux.programming.pdf
/linux.programming/info.nfo
/gimp.manual/gimp.manual.pdf
/gimp.manual/info.nfo
.
.
.


και θέλω μετά το τρέξιμο του script να γίνει έτσι
Κώδικας: Επιλογή όλων
$./script.sh
$ls
/linux.programming/linux.programming.pdf
/linux.programming/linux.programming.nfo
/gimp.manual/gimp.manual.pdf
/gimp.manual/gimp.manual.nfo
.
.
.


καμιά ιδέα κανείς ; :problem:
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό ftso » 30 Μάιος 2010, 21:38

όπου /ebooks/ βάζεις το ακριβές path του καταλόγου ebooks.
Παράδειγμα: /media/data/various/ebooks/
Κώδικας: Επιλογή όλων
for i in `ls /ebooks/` ; do pname=$(ls /ebooks/$i/*.pdf | sed "s|/ebooks/$i/| |g" | sed 's/.pdf//g') ; mv "/ebooks/$i/info.nfo" "/ebooks/$i/$pname.nfo" ; done


Για να δουλέψει σωστά θα πρέπει ο κατάλογος ebooks να περιέχει μόνο άλλους καταλόγους που θα περιέχουν τα δυο αρχεία που ανέφερες.
Το χρησιμοποιείς με δικιά σου ευθύνη...

Αυτά :)
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό c7p » 30 Μάιος 2010, 23:00

WOW :clap: :clap: :clap: :clap: με κατάλληλες τροποποιήσεις το script δουλεύει τέλεια !
Ευχαριστώ ftso :bow:
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό c7p » 31 Μάιος 2010, 00:35

Μια τελευταία ερωτησούλα. Τελικά μέσα το αρχείο "info.nfo" διαφέρει πολλές φορές απο φάκελο σε φάκελο. Στην ουσία είναι το όνομα της ομάδας των uploader (4 ομάδες τέσσερεις φορές πρέπει να αλλάζω το /ebooks/$i/info.nfo). Υπάρχει κάποια δυνατότητα να ξεπεράσουμε το "πρόβλημα" αυτό ώστε να τελειοποιηθεί το script ; (δοκίμασα *.nfo αλλά δεν πιάνει) (έστω οι τα αρχεία info.nfo, info2.info, info3.info, info4.nfo καλύπτουν όλα τα πιθανά αρχεία nfo που μπορεί να υπάρχουν στο φάκελο)
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό ftso » 31 Μάιος 2010, 01:53

Κώδικας: Επιλογή όλων
for i in `ls /tmp/ebooks/` ; do pname=$(ls /tmp/ebooks/$i/*.pdf | sed "s|/tmp/ebooks/$i/||g" | sed 's/.pdf//g') ; nname=$(ls /tmp/ebooks/$i/*.nfo | sed "s|/tmp/ebooks/$i/||g" | sed 's/.nfo//g'); mv "/tmp/ebooks/$i/$nname.nfo" "/tmp/ebooks/$i/$pname.nfo" ; done


Βάζεις όπου /tmp/ebooks/ το ακριβές path για τον ebooks
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό c7p » 28 Ιουν 2010, 15:44

Κάτι σχετικό με τα παραπάνω. Άμα θέλω να αφαιρέσω κάποιες λέξης ή έστω μια λέξη που ενδεχομένως περιέχουν τα ονόματα πολλαπλών αρχείων του path (έστω) των ebooks στο παραπάνω παράδειγμα, τι κάνω ;
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό ftso » 29 Ιουν 2010, 23:21

Δώσε παράδειγμα...
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό c7p » 30 Ιουν 2010, 00:18

π.χ έχουμε τα εξής αρχεία

Κώδικας: Επιλογή όλων
.../Intro (Πράσινες Κατσαρίδες).mp3
.../ Φοβού την τέζα (Πράσινες Κατσαρίδες).mp3
.
.
.
.../Ωραία μέρα (Τρελά Κατσίκια).mp3
.../Κούκος (Τρελά Κατσίκια).mp3
.
.


από αυτά τα αρχεία (που βρίσκονται στον φάκελο) θέλω να αφαιρέσω τα "(Τρελά Κατσίκια)" και "(Πράσινες Κατσαρίδες)".
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό ftso » 30 Ιουν 2010, 01:17

Κώδικας: Επιλογή όλων
IFS="," ; for i in `ls -m /tmp/` ; do echo "$i" | grep '(Πράσινες Κατσαρίδες)' ; if [ $? -eq 0 ]; then w=`echo "$i" | sed 's/(Πράσινες Κατσαρίδες)//g'` ; mv "/tmp/$i" "/tmp/$w" ; fi ; done ; IFS="";

όπου /tmp/ βάζεις τον κατάλογο που περιέχει τα αρχεία.
όπου (Πράσινες Κατσαρίδες) βάζεις την λέξη που θέλεις να φύγει.
πριν το εφαρμόσεις κάνε ένα backup του καταλόγου μην τυχόν και πάει κάτι στραβά...
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Βοήθεια για script μετονομασίας αρχείων

Δημοσίευσηαπό c7p » 30 Ιουν 2010, 23:24

Να το προσαρμοσμένο script

Κώδικας: Επιλογή όλων
IFS="," ; for i in `ls -m /path/` ; do echo "$i" | grep 'lucid-e1' ; if [ $? -eq 0 ]; then w=`echo "$i" | sed 's/lucid-e1//g'` ; mv "/path/$i" "/path/$w" ; fi ; done ; IFS="";


Το αρχείο είναι το Ubuntu Manual lucid-e1.pdf, όταν τρέχω το script μου βγάζει το εξής μήνυμα

Κώδικας: Επιλογή όλων
Ubuntu Manual lucid-e1.pdf
mv: αδύνατη η εκτέλεση της stat στο αρχείο «/path/ Ubuntu Manual lucid-e1.pdf»: No such file or directory


Μου κάνει εντύπωση πως μετά απο την διαδρομή έχει κενό και μετά ακολουθεί το όνομα του αρχείου (/path/ Ubuntu Manual lucid-e1.pdf)
Άβαταρ μέλους
c7p
powerTUX
powerTUX
 
Δημοσιεύσεις: 1849
Εγγραφή: 30 Μάιος 2009, 16:09
Τοποθεσία: Κατερίνη
Εκτύπωση

Επόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι