Προς το περιεχόμενο

Προβλημα grep σε Cygwin


Επισκέπτης

Προτεινόμενες αναρτήσεις

Επισκέπτης
Δημοσ.

Καλησπερα,

εχω ενα αρχειο με 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 δε καταλαβα και πολλα..

Δημοσ.

Αν και δέν έχω 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

Επισκέπτης
Δημοσ.

ευχαριστω παιδια.δυστυχως δε δουλευουν..μου εμφανιζουν περισσοτερα αποτελεσματα απ'οτι θελω..

@bird

φοβαμαι πως δεν ειναι τοσο απλο,δε θελω να τυπωσω τις 20 τελευταιες εγγραφες αλλα οσες υπολειπονται απο τη στιγμη που εγινε το πρωτο match.θελω δηλαδη να μου τυπωνει ολες τις εγγραφες που ειναι μεγαλυτερες απο 999980.Ο αριθμος αυτος ειναι ενδεικτικος.

το αρχειο ειναι αυτο..

http://www.megaupload.com/?d=JBBFLPGG

Δημοσ.

Αν δεν είναι απαραίτητο να χρησημοποιήσεις την grep μπορείς να δοκιμάσεις αυτό το προγραμματάκι που έφτιαξα (grep.zip). Κάνε το compile με τον gcc και τρέξε το...

Η σύνταξη θα είναι ίδια με τη grep μόνο που δεν πρέπει να βάλεις μονά εισαγωγικά (' ') στο string που θέλεις να βρείς.

 

Υπ'όψην ότι το πρόγραμμα κάνει μόνο αυτό που θέλεις, δηλαδή βρίσκει την εγγραφή και τυπώνει από εκεί και κάτω...

 

Αν τώρα θέλεις να χρησημοποιήσεις την grep για να το κάνεις, ισως με κανένα scriptακι αλλά τώρα δεν μπορώ να σου πω κάτι...

 

Ελπίζω να βοήθησα λίγο...

Δημοσ.

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....

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...