Επισκέπτης Δημοσ. 6 Μαρτίου 2006 Δημοσ. 6 Μαρτίου 2006 Καλησπερα, εχω ενα αρχειο με 1εκ. εγγραφες το οποιο ονομαζεται 1Μ.file αυτο που θελω εγω να κανω ειναι με την εντολη grep μεσα απο cygwin να βρω (να τυπωσω στην ουσια..) ολες τις εγγραφες που πληρουν ενα κριτηριο...θελω π.χ. να μου τυπωνει ολες τις εγγραφες που εχουν αριθμο μεγαλυτερο απο 999980 στο πρωτο τους πεδιο.. Το αρχειο εχει την εξης δομη: 0 23345 1 34545 2 5687 . . . 999999 57490 γραφω grep '999980' /home/natural_sgf/1M.file και μου τυπωνει την εγγραφη που τη περιεχει..εγω ομως θελω να μου τυπωσει μαζι και ολες τις εγγραφες που ακολουθουν αυτη που εγινε match.θελω δηλαδη να τυπωνω ολες τις εγγραφες του αρχειου που υπολειπονται.. γιαυτο γραφω grep -A '999980' /home/natural_sgf/1M.file αλλα εδω το συστημα κολλαει(για την ακριβεια δεν κανει τιποτα...) το -Α το ειδα απο man grep και μετα απο grep --help μπορειτε να με βοηθησετε;τι κανω λαθος;sorry αλλα απο unix δε ξερω χριστο..και απο man δε καταλαβα και πολλα..
bird Δημοσ. 6 Μαρτίου 2006 Δημοσ. 6 Μαρτίου 2006 Αν και δέν έχω Linux τώρα να το τσεκάρω δοκίμασε το grep 99998. /home/natural_sgf/1M.file (η . συμαίνει οποιοσδήποτε χαρακτήρας) Αυτό θα σου δώσει όλες τις καταχωρήσεις από το 999980 έως το 999989. το grep 9999.. /home/natural_sgf/1M.file θα σου δώσει όλες τις καταχωρήσεις από το 999900 έως το 999999. Ίσως να δουλέψει και το grep 9999\[89]. /home/natural_sgf/1M.file αλλά για αυτό δεν είμαι σίγουρος (αν δουλέψει θα σου δώσει αυτό που θέλεις). Τώρα αν απλά θέλεις να τυπώσεις τις τελευταίες 20 καταχωρήσεις μπορείς να χρησημοποιήσεις την tail -n 20 /home/natural_sgf/1M.file
Dionisos Δημοσ. 6 Μαρτίου 2006 Δημοσ. 6 Μαρτίου 2006 Dokimase grep '9999[89][0-9]' /home/natural_sgf/1M.file
Επισκέπτης Δημοσ. 6 Μαρτίου 2006 Δημοσ. 6 Μαρτίου 2006 ευχαριστω παιδια.δυστυχως δε δουλευουν..μου εμφανιζουν περισσοτερα αποτελεσματα απ'οτι θελω.. @bird φοβαμαι πως δεν ειναι τοσο απλο,δε θελω να τυπωσω τις 20 τελευταιες εγγραφες αλλα οσες υπολειπονται απο τη στιγμη που εγινε το πρωτο match.θελω δηλαδη να μου τυπωνει ολες τις εγγραφες που ειναι μεγαλυτερες απο 999980.Ο αριθμος αυτος ειναι ενδεικτικος. το αρχειο ειναι αυτο.. http://www.megaupload.com/?d=JBBFLPGG
bird Δημοσ. 6 Μαρτίου 2006 Δημοσ. 6 Μαρτίου 2006 Αν δεν είναι απαραίτητο να χρησημοποιήσεις την grep μπορείς να δοκιμάσεις αυτό το προγραμματάκι που έφτιαξα (grep.zip). Κάνε το compile με τον gcc και τρέξε το... Η σύνταξη θα είναι ίδια με τη grep μόνο που δεν πρέπει να βάλεις μονά εισαγωγικά (' ') στο string που θέλεις να βρείς. Υπ'όψην ότι το πρόγραμμα κάνει μόνο αυτό που θέλεις, δηλαδή βρίσκει την εγγραφή και τυπώνει από εκεί και κάτω... Αν τώρα θέλεις να χρησημοποιήσεις την grep για να το κάνεις, ισως με κανένα scriptακι αλλά τώρα δεν μπορώ να σου πω κάτι... Ελπίζω να βοήθησα λίγο...
bobosss Δημοσ. 6 Μαρτίου 2006 Δημοσ. 6 Μαρτίου 2006 estw oti exeis to arxeio foo.txt 0 eeeeee 1 rrrrr 2 ttttt 3 yyyyy 4 uuuuu 5 iiiii 6 ooooo 7 ppppp 8 hhhhh kai theleis na typwseis ta panta katw apo to 5 mporeis na kaneis : grep -n 5 foo.txt ayto tha sou dwsei 6:5 iiiiii to 6 einai o arithmos gramis aytou pou vrike meta me to tail ektypwneis tis grames apo aythn kai katw tail -6 foo.txt an theleis na to enswmatwseis twra se prog i script einai allo panigiri.... ayto den sou kanei giati proipothetei na katese esy na vlepeis ta apotelesmata tis mias kai na ta pernas sthn allh .... pes mas ti thes na kaneis etsi wste na voithisoume perisotero....
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.