elinapara Δημοσ. 21 Μαΐου 2008 Share Δημοσ. 21 Μαΐου 2008 Γεια σας!!! Προσπαθώ να κάνω ένα πρόγραμμα σεναρίου κελύφους και έχω ένα προβληματάκι.. Θέλω να πάρω δεδομενα από ένα αρχείο και να καταχωρώ σε ένα πίνακα.. Από ότι διάβασα είναι κάπως έτσι: pinakas.txt το έκανα αυτό αλλά μου εμφανίζει λάθος στη 2η γραμμή στο END. Αν ξέρει κανείς...ας με βοηθήσει. Ευχαριστώ πολύ!!! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 21 Μαΐου 2008 Share Δημοσ. 21 Μαΐου 2008 Γεια σας!!! Προσπαθώ να κάνω ένα πρόγραμμα σεναρίου κελύφους και έχω ένα προβληματάκι..Θέλω να πάρω δεδομενα από ένα αρχείο και να καταχωρώ σε ένα πίνακα.. Από ότι διάβασα είναι κάπως έτσι: [ATTACH]12193[/ATTACH] το έκανα αυτό αλλά μου εμφανίζει λάθος στη 2η γραμμή στο END. Αν ξέρει κανείς...ας με βοηθήσει. Ευχαριστώ πολύ!!! Δεν ξέρω να σου απαντήσω επακριβώς αλλά ρίξε μια ματιά στα παρακάτω. http://www.gnu.org/software/gawk/manual/gawk.html http://www.gnu.org/manual/gawk/gawk.html http://dmst.aueb.gr/dds/os1lab/awk/index.htm Μια αλλη ερωτιση..Μπορω να βαλω μεσα στα window kai to linux και οποτε θελω το ανοιγω.... Πως μπορω να το κανω αυτο Μπορέις. Υπάρχει το CygWin και διάφορα virtual machines όπως το VirtualBox και το VmWare. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
simosx Δημοσ. 21 Μαΐου 2008 Share Δημοσ. 21 Μαΐου 2008 Έχεις βάλει { } σε όλο το κώδικα, που συμπεριλαμβάνει και το END { }. Απλά βγάλε το εξωτερικό { }. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
elinapara Δημοσ. 21 Μαΐου 2008 Μέλος Share Δημοσ. 21 Μαΐου 2008 Ευχαριστώ χωρίς τα { } δουλεύει. Απλά αδικα παιδευόμουν, ρώτησα τον καθηγητή και μου είπε να μην το κάνω με πίνακα γιατί είναι πιο δύσκολο και να το κανώ με την awk που θα διαβαζει το αρχειο γραμμη γραμμη. Αν μπορει καποιος να βοηθήσει γιατι εχω καταμπερδευτεί. Το πρόγραμμα είναι το εξής: Κατασκευή ενός προγράμματος σεναρίου κελύφους, που θα υλοποιεί μια απλή εφαρμογή «Φύλλου Εργασίας» (Spreadsheet). Το πρόγραμμα θα έχει την δυνατότητα καταχώρησης σε ένα πίνακα 20 γραμμών και 8 στηλών, αριθμών αλλά και πράξεων. Σε κάθε κελί θα μπορεί να υπάρχει είτε αριθμός είτε πράξη της μορφής: Αριθμός1 <πράξη> Αριθμός2 Στη θέση της πράξης μπορούν να είναι τα σύμβολα +, -, *, /, % Στη θέση των αριθμών 1 και 2 μπορεί να είναι είτε νούμερο σε δεκαδική μορφή (xx.xxx) είτε αναφορά σε άλλο κελί με γράμμα στήλης και αριθμό γραμμής (π.χ. Α1, Β2, Γ3, Ε8 κ.λ.π.) Παράδειγμα περιεχομένου κελιών : Α1+1, Β2-Γ2, Ε3*Ε3, Δ4/2.9 Σε κάθε αλλαγή οποιουδήποτε κελιού θα επαν-υπολογίζεται ολόκληρο το φύλλο εργασίας. Τέλος η εφαρμογή θα έχει τη δυνατότητα να αποθηκεύει τα φύλλα εργασίας σε αρχείο κειμένου όπως και να τα φορτώνει από αρχείο κειμένου. Αν μπορει καποιος να μου πει την λογική. Πως θα κανω αντιστοίχηση των γραμμάτων Α1,Α2,Β1.... στα κελιά; θα διαβαζω με την awk το αρχείο γραμμή γραμμή και θα παρω 20 περιπτώσεις για κάθε γραμμή; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 22 Μαΐου 2008 Share Δημοσ. 22 Μαΐου 2008 Αν μπορει καποιος να μου πει την λογική. Πως θα κανω αντιστοίχηση των γραμμάτων Α1,Α2,Β1.... στα κελιά; θα διαβαζω με την awk το αρχείο γραμμή γραμμή και θα παρω 20 περιπτώσεις για κάθε γραμμή; τι ακριβώς δεν καταλαβαίνεις ; πως θα εισάγεις δεδομένα; πως θα κάνεις open-save; πως θα αντιστοιχήσεις τα δεδομένα των κελιών με τις εγγραφές; . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
elinapara Δημοσ. 22 Μαΐου 2008 Μέλος Share Δημοσ. 22 Μαΐου 2008 Κυρίως πως θα κάνω αντιστοίχηση των δεδομένων με τις εγγραφές. Αν χρησιμοποιήσω την συνάρτηση sub(ere,repl,in) που κάνει αντικατάσταση στο string in την κανονικη εκφραση ere με το repl; Α και κατι άλλο αν το κελί πχ περιεχει <αριθμο><πραξη><αριθμο> θα πρεπει να τα διαχωρισω για να τα ελεγξω; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 22 Μαΐου 2008 Share Δημοσ. 22 Μαΐου 2008 είμαι άσχετος ! http://www.hmug.org/man/1/AWK.php http://sparky.rice.edu/~hartigan/awk.html http://www.faqs.org/faqs/computer-lang/awk/faq/ http://www.bolthole.com/AWK.html http://www.bolthole.com/awk5.html αν κάθε εγγραφή στο αρχείο αντιστοιχεί με μιά σειρά του πίνακα πρέπει να αντιστοιχήσεις τα 8 δεδομένα σε κάποιες μεταβλητές ύστερα τα χειρίζεσαι ανάλογα Α και κατι άλλο αν το κελί πχ περιεχει <αριθμο><πραξη><αριθμο> θα πρεπει να τα διαχωρισω για να τα ελεγξω; αλλά άν έχεις Α3+Β7 ; μάλλον κάποιο έλεγχο πρέπει να κάνεις για να αντικαθιστάς με το περιεχόμενο των κελιών πριν κάνεις την πράξη*** υπομονή, σε λίγο θα φανούν οι ειδικοί ! Awk is an powerful command language that allows the user to manipulate files containing columns of data and strings. Awk is extremely useful, both for general operation of Unix commands, and for data reduction (e.g. IRAF). You might also learn how to use the stream editor sed. Many applications of awk resemble those done on PC spreadsheets. καλή επιτυχία . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 22 Μαΐου 2008 Share Δημοσ. 22 Μαΐου 2008 *** ίσως να μην χρειάζεται http://unixhelp.ed.ac.uk/CGI/man-cgi?awk The type of an expression is determined by its context and automatic type conversion occurs if needed. For example, to evaluate the state- ments y = x + 2 ; z = x "hello" The value stored in variable y will be typed numeric. If x is not numeric, the value read from x is converted to numeric before it is added to 2 and stored in y. The value stored in variable z will be typed string, and the value of x will be converted to string if neces- sary and concatenated with "hello". (Of course, the value and type stored in x is not changed by any conversions.) A string expression is converted to numeric using its longest numeric prefix as with atof(3). A numeric expression is converted to string by replacing expr with sprintf(CONVFMT, expr), unless expr can be represented on the host machine as an exact integer then it is converted to sprintf("%d", expr). Sprintf() is an AWK built-in that duplicates the functionality of sprintf(3), and CONVFMT is a built-in variable used for internal conversion from number to string and initialized to "%.6g". Explicit type conversions can be forced, expr "" is string and expr+0 is numeric. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
NullScan Δημοσ. 22 Μαΐου 2008 Share Δημοσ. 22 Μαΐου 2008 Τώρα δεν προλαβαίνω, θα επανέλθω αργότερα να βοηθήσω. Μια ερώτηση μόνο. Γιατί σε awk? Αν δεν λέει η εργασία για shell script αποκλειστικά, δεν μπορείς να διαλέξεις οποιαδήποτε άλλη scripting γλώσσα? Π.χ. perl (ναι, το ξέρω έχω μια αδυναμία...) Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
elinapara Δημοσ. 22 Μαΐου 2008 Μέλος Share Δημοσ. 22 Μαΐου 2008 Λέει πρόγραμμα σεναρίου κέλυφους και δεν έχουμε κάνει perl οπότε καλύτερα με την awk. Πως μπορώ να κάνω η εγγραφή ενός πεδίου δηλαδή το κελί του πίνακα να αναγνωριζει την μορφή <αριθμός><πραξη><αριθμός> έχω γράψει αυτό: a.txt αλλά αυτό βγάζει λάθος αν έχουμε κάτι εκτός από αριθμό. Για να φτίαξω την παραπάνω μορφή (αριθμος,πραξη,αριθμος) πρέπει να χώρίσω το κάθε πεδίο; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 22 Μαΐου 2008 Share Δημοσ. 22 Μαΐου 2008 αυτό δεν λέει η έκφραση που έγραψες ; αν το $1 δεν είναι αριθμός - τύπωσε κλπ άρα σωστό το if http://www.gnu.org/manual/gawk/gawk.html#Expressions 5.3 . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
elinapara Δημοσ. 22 Μαΐου 2008 Μέλος Share Δημοσ. 22 Μαΐου 2008 Απλώς το $1 αντιστοιχεί στο πρώτο πεδίο της γραμμής. Γενικά η awk αναθέτει τα διακεκριμενα πεδια της γραμμής(στήλες) στις μεταβλητές $1,$2,$3....$n.Επίσης ολόκληρη η γραμμή που επεξεργάζεται η awk ανατίθεται στη μεταβλητή $0.Οπότε με αυτό που έγραψα ελεγχω αν όλο το πεδίο είναι αριθμός αλλά σε ένα πεδίο μπορεί να περιέχει αριθμό,πράξη ,αριθμό. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 22 Μαΐου 2008 Share Δημοσ. 22 Μαΐου 2008 η μεταβλητή (πεδίο) θα είναι ή αριθμός ή παράσταση η παράσταση θα είναι ή μιά πράξη με αριθμούς ή μια πράξη με μεταβλητές (πχ Α1+3) όπου Α1 το περιεχόμενο του κελιού αν κατάλαβα καλά η awk καταλαβαίνει το είδος της μεταβλητής και το ερμηνεύει κατάλληλα, αντικαθιστώντας τις μεταβλητές με την τιμή τους όπου χρειάζεται άρα αν αναθέσεις την παράσταση σε μιά μεταβλητή όταν ζητάς την μεταβλητή θα παίρνεις την τιμή της παράστασης θα έλεγα να γράψεις λίγο περισσότερο κώδικα και σκεπτικό, για να καταλάβουν το πρόβλημα σου περιέχει αριθμό,πράξη ,αριθμό. αν η $1 είναι 32+10 και ζητήσεις να τυπωθεί δεν βγάζει 42 ? . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
elinapara Δημοσ. 22 Μαΐου 2008 Μέλος Share Δημοσ. 22 Μαΐου 2008 αν η $1 είναι 32+10 και ζητήσεις να τυπωθεί δεν βγάζει 42 ? ναι μπορείς να το κάνεις αυτό. Από κώδικα έχω γράψει κάτι δοκιμαστικά αλλά δεν δουλεύει. dokimi.txt Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 23 Μαΐου 2008 Share Δημοσ. 23 Μαΐου 2008 κάνουμε το πρόβλημά μας μικρά κομμάτια και τα ελέγχουμε ένα ένα χθές ήμουν άσχετος, σήμερα έμαθα κατι ! κάνε ένα αρχείο calctemp2 που θα έχει αριθμό σύμβολο αριθμό σε μιά σειρα τρέχε το dokimi3.txt και βλέπε το αποτέλεσμα άν είναι αυτό που θέλεις το dik1.txt γράφει σε αρχείο την είσοδο που δέχεται είχες μάλλον λάθος την χρήση $1 $2 κλπ όταν γράφεις $a το awk ψάχνει το πεδίο στη θέση a και όχι την μεταβλητή a πρέπει να το γράφεις αλλιώς γιαυτό άλλαξα όλες τις μεταβλητές τα if έτσι δουλεύουν (μάλλον) διάβασα τις παρακάτω σελίδες http://www.grymoire.com/Unix/Awk.html#uh-1'>http://www.grymoire.com/Unix/Awk.html#uh-1 http://foss.ntua.gr/wiki/index.php/%CE%A0%CE%B1%CF%81%CE%BF%CF%85%CF%83%CE%AF%CE%B1%CF%83%CE%B7_bash/sed/awk http://www.grymoire.com/Unix/Awk.html δεν είμαι προγραμματιστής, οπότε τα ξανασκέφτεσαι όλα αυτά ! . άν κάνεις τα ERROR ERRO1 ERRO2 ERRO3 θα βλέπεις αν δουλεύουν τα if νομίζω εχουν πρόβλημα ετσι που τα απλοποίησα. . dokimi3.txt dok1.txt Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.