chex Δημοσ. 18 Ιουλίου 2009 Share Δημοσ. 18 Ιουλίου 2009 μπορει καποιος να μου πει που μπορω να ψαξω για να δω πως θα φτιαξω ενα script που θα κανει ελεγχο στο extension δυο αρχειων. Μηπως πρεπει να βάλω ρουτινες της C για να κανω τον ελεγχο? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 19 Ιουλίου 2009 Share Δημοσ. 19 Ιουλίου 2009 Extension εννοείς τους χαρακτήρες που ακολουθούν την τελευταία τελεία κάποιου Filename, έτσι; Δεν κατάλαβα ακριβώς τι θέλεις να κάνεις. Αναζήτηση βάση του extension μπορείς να το κάνεις απλά με την find -π.χ. για να βρεις όλα τα αρχεία που τελειώνουν σε case insensitive ".ext", >find /path/to/search/in -iname "*.ext" Αλλά μετά λες "έλεγχο στο extension δύο αρχείων" -δηλαδή; Κάτι σαν: >if [ ${file1##*.} == ${file2##*.} ]; then echo "τα δύο αρχεία έχουν ίδιο extension"; fi ; Πάντως ό,τι και αν θέλεις να κάνεις, υπάρχουν μια ντουζίνα τρόποι για να το κάνεις από οποιοδήποτε shell, είτε μέσω του buit-in expansion και regular expression support, είτε με τη χρήση εξωτερικών εργαλείων -όπως η awk. Δε θα χρειαστεί να χρησιμοποιήσεις C ή οποιαδήποτε άλλη γλώσσα. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
chex Δημοσ. 19 Ιουλίου 2009 Μέλος Share Δημοσ. 19 Ιουλίου 2009 αυτο που θελω να κανω ειναι ενα προγραμματακι που θα παιρνει σαν παραμετρους δυο φακελους και θα τρεχει την εντολη diff. σ αυτο το σημείο θελω να γινεται η σιγκριση μονο σε αρχεια κοινου τυπου. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
alkisg Δημοσ. 19 Ιουλίου 2009 Share Δημοσ. 19 Ιουλίου 2009 Δηλαδή αν έχεις ένα φάκελο Α με τα αρχεία 1.doc και 2.doc, κι ένα φάκελο Β με τα αρχεία 3.doc και 4.doc, τι ακριβώς θες να συγκρίνει; Συνήθως συγκρίνονται αρχεία που έχουν και το ίδιο όνομα, όχι μόνο την ίδια επέκταση... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
chex Δημοσ. 19 Ιουλίου 2009 Μέλος Share Δημοσ. 19 Ιουλίου 2009 Δηλαδή αν έχεις ένα φάκελο Α με τα αρχεία 1.doc και 2.doc,κι ένα φάκελο Β με τα αρχεία 3.doc και 4.doc, τι ακριβώς θες να συγκρίνει; Συνήθως συγκρίνονται αρχεία που έχουν και το ίδιο όνομα, όχι μόνο την ίδια επέκταση... οταν δινεις δυο φακέλους στη diff συγκρινει ενα προς ενα το ενα αρχειο με τα αρχεια του αλλου. αν μεσα στο φακελο εχεις exe και αλλα binary προσπαθει να τα συγκρινει και αυτα. εγω θελω να κανει ελεγχο ας πουμε αν ο ΦΑΚΕΛΟΣ_Α εχει *.doc και *1.pdf και ΦΑΚΕΛΟΣ_Β με *.exe και *2.pdf , να εκτελειται η diff μονο οταν το *1.pdf του ΦΑΚΕΛΟΣ_Α συναντησει το *2.pdf του ΦΑΚΕΛΟΥ_Β. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 19 Ιουλίου 2009 Share Δημοσ. 19 Ιουλίου 2009 Μπορείς να βάζεις τα αρχεία κάθε καταλόγου σε ένα array, π.χ.:> dir1_files=($(ls $dir1)) dir2_files=($(ls $dir2)) και να συγκρίνεις αναδρομικά κάθε στοιχείο της πρώτης λίστας με κάθε στοιχείο της δεύτερης λίστας, εφόσον έχουν το ίδιο extension, π.χ.: >for dir1_file in ${dir1_files[@]};do for dir2_file in ${dir2_files[@]};do if [ ${dir1_file##*.} == ${dir2_file##*.} ]; then μπλαμπλαμπλα fi done done (παράδειγμα σε bash shell, σε άλλα shells θα είναι λίγο διαφορετικά) Αν ο σκοπός σου είναι να διαπιστώσεις αν πρόκειται για το ίδιο αρχείο, δε χρειάζεται να χρησιμοποιήσεις την diff, η md5sum ή η shasum αρκεί. Βέβαια αν ο σκοπός σου είναι αυτός, πιθανότατα δεν υπάρχει λόγος να χρησιμοποιείς καν bash loops και md5sum/shasum, καθώς υπάρχουν έτοιμα προγραμματάκια όπως το fdupes που κάνουν τη δουλειά πιο αποδοτικά. Αν σκοπός σου είναι να παράγεις diff patches, η diff χρησιμοποιείται μόνο σε text files -για binary files όπως τα .doc και τα .exe υπάρχει η bsdiff. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
chex Δημοσ. 19 Ιουλίου 2009 Μέλος Share Δημοσ. 19 Ιουλίου 2009 αγαπητε nske θεωρω οτι εισουν αρκετα κατατοπιστικος και αναλυτικος. θα προσπαθησω να εφαρμοσω καποια απο αυτα και τα ξαναλεμε. ευχαριστω Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
alkisg Δημοσ. 19 Ιουλίου 2009 Share Δημοσ. 19 Ιουλίου 2009 οταν δινεις δυο φακέλους στη diff συγκρινει ενα προς ενα το ενα αρχειο με τα αρχεια του αλλου. αν μεσα στο φακελο εχεις exe και αλλα binary προσπαθει να τα συγκρινει και αυτα. εγω θελω να κανει ελεγχο ας πουμε αν ο ΦΑΚΕΛΟΣ_Α εχει *.doc και *1.pdf και ΦΑΚΕΛΟΣ_Β με *.exe και *2.pdf , να εκτελειται η diff μονο οταν το *1.pdf του ΦΑΚΕΛΟΣ_Α συναντησει το *2.pdf του ΦΑΚΕΛΟΥ_Β. Μα η diff τα υποστηρίζει εγγενώς όλα αυτά που λες... Π.χ. > diff test1/ test2/*.xml Συγκρίνει τα .xml αρχεία από το φάκελο test2 με τα ομώνυμα αρχεία του φακέλου test1. Προφανώς αν θες βάζεις και *.pdf και όσα άλλα αρχεία θες ταυτόχρονα... Αν θες να *εξαιρέσεις* αρχεία αντί να συμπεριλάβεις, μπορείς να χρησιμοποιήσεις την GLOBIGNORE. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
chex Δημοσ. 31 Ιουλίου 2009 Μέλος Share Δημοσ. 31 Ιουλίου 2009 καταρχας ευχαριστω ολους σας για τη βοηθεια. το εκανα upload για να μοιραστω μαζι σας. δοκιμαστε το. file: eras.sh Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 31 Ιουλίου 2009 Share Δημοσ. 31 Ιουλίου 2009 ευχαριστούμε chex ! . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
alkisg Δημοσ. 31 Ιουλίου 2009 Share Δημοσ. 31 Ιουλίου 2009 Για διαγραφή διπλότυπων ένα καλό πρόγραμμα είναι και το fdupes. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 31 Ιουλίου 2009 Share Δημοσ. 31 Ιουλίου 2009 Επίσης θα μπορούσες να κάνεις του script να κρατά ένα log. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.