voulaji Δημοσ. 5 Φεβρουαρίου 2010 Share Δημοσ. 5 Φεβρουαρίου 2010 Ψάχνω για scripts που θα υλοποιούν τα πιο κάτω: 1.να εκτυπώνει μια λίστα μόνο με τα directories (όχι files) που βρίσκονται στο τρέχον directory (όχι στα subdirectories). 2.να εκτυπώνει μια λίστα μόνο με τα files (όχι directories) τα οποία είναι μεγαλύτερα από 10Kb και βρίσκονται στο τρέχον directory (και στα subdirectories). 3.να τυπώνει στην οθόνη τις γραμμές ενός αρχείου με τυχαίο σειρά Υπάρχει καμιά ιδέα? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
macabre_sunsets Δημοσ. 5 Φεβρουαρίου 2010 Share Δημοσ. 5 Φεβρουαρίου 2010 1. Εκτυπώνει στην οθόνη όλα τα directory αλλά νομίζω όχι τα sub-directory >find /path/to/directory -type d -maxdepth 1 2. Εκτυπώνει στην οθόνη όλα τα αρχεία που είναι μεγαλύτερα από 10kb από όλα τα sub-directory >find /path/to/directory -type f -size +10k 3. Δεν γνωρίζω Δεν είναι δοκιμασμένες οι εντολές. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
apoikos Δημοσ. 6 Φεβρουαρίου 2010 Share Δημοσ. 6 Φεβρουαρίου 2010 voulaji: 1 & 2: man find 3: man shuf Ας μην απαντήσει κανένας άλλος, δε θα περάσουμε και 2ο μάθημα ;-) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 6 Φεβρουαρίου 2010 Share Δημοσ. 6 Φεβρουαρίου 2010 επι τέλους ! . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
voulaji Δημοσ. 6 Φεβρουαρίου 2010 Μέλος Share Δημοσ. 6 Φεβρουαρίου 2010 Καταρχήν ευχαριστώ πολύ τον macabre_sunsets για την βοήθειά του. Όσο για τα υπόλοιπα σχόλια, δεν νομίζω οτι υπάρει μάθημα στο κόσμο που να περνιέται με 2-3 scripts!!!!!!!! Άλλωστε μια βοήθεια ζήτησα σε κάτι που δεν γνωρίζω, είναι τόοοοοοοοοοοοοοοσο εξωφρενικό? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 6 Φεβρουαρίου 2010 Share Δημοσ. 6 Φεβρουαρίου 2010 τα ρίχνεις συνέχεια στην ψύχρα τα πόστ με τις ασκήσεις καλή επιτυχία ! . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
voulaji Δημοσ. 12 Φεβρουαρίου 2010 Μέλος Share Δημοσ. 12 Φεβρουαρίου 2010 Για το πρώτο έχω κανει αυτό: #!/bin/bash echo "printing directory names..." ls -ap | grep "/" if [ $? -ne 0 ] then echo "exiting abnormally..." fi Δουλεύει μια χαρά, οπότε δεν νομίζω να είναι κάτι λάθος? Τώρα για τα υπόλοιπα δυο, ειλικρινά δεν μπορώ να φτιάξω κάτι σωστό. ---------- Προσθήκη στις 22:58 ---------- Προηγούμενο μήνυμα στις 22:51 ---------- Φίλε macabre_sunsets, προσπαθώ να δοκιμάσω την δική σου εκδοχή για την 2, αλλά δεν ...δουλεύει. 2. Εκτυπώνει στην οθόνη όλα τα αρχεία που είναι μεγαλύτερα από 10kb από όλα τα sub-directory >find /path/to/directory -type f -size +10k Έχεις καμιά ιδέα για το πώς μπορεί να διαφοροποιηθεί? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
macabre_sunsets Δημοσ. 12 Φεβρουαρίου 2010 Share Δημοσ. 12 Φεβρουαρίου 2010 Δηλαδή δεν εμφανίζει τα αρχεία που βρίσκονται στο parent directory και εμφανίζει μόνο αυτά από τα sub-directory? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 12 Φεβρουαρίου 2010 Share Δημοσ. 12 Φεβρουαρίου 2010 [/color]Φίλε macabre_sunsets, προσπαθώ να δοκιμάσω την δική σου εκδοχή για την 2, αλλά δεν ...δουλεύει. 2. Εκτυπώνει στην οθόνη όλα τα αρχεία που είναι μεγαλύτερα από 10kb από όλα τα sub-directory >find /path/to/directory -type f -size +10k Έχεις καμιά ιδέα για το πώς μπορεί να διαφοροποιηθεί? Μελέτησε το παρακάτω. http://unixhelp.ed.ac.uk/CGI/man-cgi?find Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
voulaji Δημοσ. 12 Φεβρουαρίου 2010 Μέλος Share Δημοσ. 12 Φεβρουαρίου 2010 Καταρχήν συμφωνούμε ολοι ότι το πρώτο είναι σωστο? Ή μήπως υπάρχει πιο εύκολη λύση, όπως αυτη που προτείνει ο macabre_sunsets? Για το δεύτερο, μπορώ να πώ ότι η πρόταση του macabre_sunsets με βρίσκει σύμφωνη αλλά νομίζω πως σαν λύση θα πρέπει να είναι κατι πιο κομψό. Σε ότι αφορά το τρίτο, δεν έχω καμια άποψη γιατί μου φαίνεται πολύ δύσκολο. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 12 Φεβρουαρίου 2010 Share Δημοσ. 12 Φεβρουαρίου 2010 Το πρώτο εγώ θα το έκανα: > #!/bin/bash ls -d -1 */ ή > #!/bin/bash ls -l |grep "^d" Όλα τα παραπάνω έχουν πάνω από μία λύσεις. Το θέμα είναι πως θέλεις να υλοποιήσεις κάτι. Αν έχεις περιορισμούς σε κάτι. Μπορεί για παράδειγμα να σου έλεγαν τύπωσε όλα τα αρχεία και όχι καταλόγους κάνοντας χρήση μόνο των built-in εντολών του bash. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
voulaji Δημοσ. 13 Φεβρουαρίου 2010 Μέλος Share Δημοσ. 13 Φεβρουαρίου 2010 Επανέρχομαι δριμυτερη......... 1-> Οι γενικές παρατηρησεις που έχουμε, ειναι: α) Είναι υποχρεωτική η χρήση του bash ως shell β) κάθε script θα πρέπει να είναι ευανάγνωστο (π.χ. σωστή ονοματολογία, στοίχιση) και ξεκάθαρο στη σχεδίαση (όχι περίεργη σύνταξη/εντολές, σχολιασμός μόνο όταν είναι απολύτως απαραίτητο). 2-> Φίλε firewalker, αν υιοθετήσω τον δικό σου τρόπο, θα πρέπει να βγάλω το if? Ή τέλος πάντων, πώς θα είναι στην τελική του μορφή αυτό που εσύ προτείνεις? 3-> Σε ότι αφορά το 3, εχω κάνει κατι, με βασικες εντολές τις πιο κατω: ... if [ $# -gt 1 ] ; ... if [ "$?" = "1" ] ; ... if [ -s $1 -a -r $1 ] ; Δεν το έχω ολοκληρώσει όμως. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 13 Φεβρουαρίου 2010 Share Δημοσ. 13 Φεβρουαρίου 2010 Εγώ για παράδειγμα στον εντοπισμό αρχείων θα έκανα το παρακάτω. > #!/bin/bash for FILE in *; do if [ -f $FILE ]; then echo $FILE fi done Για τα directories αντίστοιχα: > #!/bin/bash for FILE in *; do if [ -d $FILE ]; then echo $FILE fi done Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
voulaji Δημοσ. 14 Φεβρουαρίου 2010 Μέλος Share Δημοσ. 14 Φεβρουαρίου 2010 Φίλε firewalker σε ευχαριστώ (όπως και όλους τους άλλους) για τη συμμετοχή, αλλά νομίζω ότι με μπέρδεωψες περισσότερο. Καταρχήν, οι δυο κώδικες που έγραψες είναι για το πρώτο ζήτημα? Δεύτερον, οι γενικοί περιορισμοί είναι σεβαστοί σε αυτο το κώδικα ? Τρίτον, για το ζήτημα με τα 10 Κb, υπάρχει καμιά ιδέα? Έχω μπλοκάρει σε αυτό κ δε μπορώ να σκεφτώ κάτι. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 15 Φεβρουαρίου 2010 Share Δημοσ. 15 Φεβρουαρίου 2010 Λοιπόν... Για το 1: > #!/bin/bash for FILE in *; do #Βρόχος for για την εύρεση όλων των περιεχομένων. if [ -d $FILE ]; then #Έλεγχος για τον εντοπισμό φακέλου. echo $FILE #Αν ο παραπάνω έλεγχος είναι αληθής τύπωσε το όνομα του φακέλου. fi done exit 0 Για το 2: > #!/bin/bash for FILE in *; do #Βρόχος for για την εύρεση όλων των περιεχομένων if [ -f $FILE ]; then #Έλεγχος για τον εντοπισμό αρχείων. file_size=$(stat -c %s $FILE) #Υπολογισμός του μεγέθους με την εντολή stat(1). if [ "$file_size" -gt 10240 ]; then #Έλεγχος αν το μέγεθος του αρχείου είναι μεγαλύτερο από 10k. echo $FILE #Aν ο έλεγχος είναι αληθής τύπωσε το όνομα του αρχείου. fi fi done exit 0 Εντολή stat(1). Για το 3: > #!/bin/bash echo "Δώσε το όνομα του αρχείου" read file_name echo "Τύπωμα των σειρών με τυχαία σειρά:" echo shuf $filename exit 0 Εντολή shuf(1). Στο 3 μπορείς να υλοποιήσεις και κάποιον έλεγχο για την ύπαρξη του αρχείου. Επίσης θα μπορούσες να το κάνεις να παίρνει το όνομα του αρχείου σαν όρισμα. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.