εντολές αρχείων κειμένου 2

E-mail Εκτύπωση PDF
Αξιολόγηση Χρήστη: / 0
ΧείριστοΆριστο 

Αναζήτηση κειμένου σε αρχείο

Οι εντολές grep, fgrep, egrep, rgrep

 

Υπάρχουν τέσσερις εντολές grep, η γενικής χρήσης grep, η fgrep που δε χρησιμοποιεί μεταχαρακτήρες, η egrep που ειδικεύεται στην αναζήτηση με μεταχαρακτήρες και η rgrep που δρα αναδρομικά σε καταλόγους. Συγκεκριμένα,

 

  • Η fgrep ειδικεύεται στην αναζήτηση αυτούσιων κομματιών κειμένου, χωρίς την ανάγκη χρήσης μεταχαρακτήρων όπως *, ?, $, ^, κλπ.

  • Η egrep χρησιμοποιεί το πλήρες σύνολο των μεταχαρακτήρων και κανονικών παραστάσεων και θεωρείται η πιο γρήγορη από τις τρεις.

  • Η rgrep δεν είναι άλλο από αναδρομική grep (ενεργοποιεί την επιλογή -r στη grep).

Στην πραγματικότητα δεν πρόκειται για τεσσερις διαφορετικές εντολές αλλά για συντομεύσεις της ίδιας εντολής. Σε παλαιότερα συστήματα UNIX ήταν όντως τρείς εντολές (grep, fgrep, egrep) αλλά στο πακέτο GNU grep που διανέμεται με το Debian, πρόκειται για μία εντολή με επιπλέον τρια σενάρια κελύφους που λειτουργούν ως wrappers(?): fgrep, egrep και rgrep.

 

Η σύνταξή της είναι η εξής:

grep [OPTIONS] pattern file

Για την grep ισχύουν οι εξής επιλογές:

 

						-f FILE--file FILE


Πραγματοποιεί την αναζήτηση χρησιμοποιώντας τις κανονικές παραστάσεις ή το κείμενο που περιέχεται στο αρχείο FILE.

						-i--ignore-case


Αγνοεί τις διαφορές μεταξύ πεζών-κεφαλαίων γραμμάτων.

						-l--files-with-matches


Εμφανίζει μόνο τους τίτλους των αρχείων για τα οποία πέτυχε η αναζήτηση.

						-L--files-without-matches


Εμφανίζει μόνο τους τίτλους των αρχείων για τα οποία απέτυχε η αναζήτηση.

						-n--line-number


Εμφανίζει τις γραμμές αριθμημένες.

						-v--invert-match


Αντιστρέφει την αναζήτηση. Αναζητά γραμμές κειμένου που δεν ταιριάζουν με το δοθέν κείμενο ή κανονική παράσταση.


Ταξινόμηση αρχείων κειμένου
Η εντολή sort

Η σύνταξη της εντολής είναι:

sort [OPTIONS] file1 ...

Σύγκριση αρχείων

 

Η εντολή cmp

 
Για απλή σύγκριση δυαδικών αρχείων χρησιμοποιούμε την εντολή cmp. Δύο δυαδικά αρχεία δεν είναι δυνατόν να θεωρηθούν “περίπου” ίδια, έτσι η εντολή συγκρίνει δύο αρχεία byte προς byte. Αυτό που μπορούμε να παραμετροποιήσουμε είναι το σημείο εκκίνησης, ωστόσο αν υπάρχει έστω και ένα byte διαφορετικό, τα αρχεία θεωρούνται διαφορετικά και η εντολή επιστρέφει κωδικό αποτυχίας.

Η σύνταξη της cmp είναι η εξής:

cmp [options] file1 file2

						-b--print-bytes


Εμφανίζει τα διαφορετικά bytes.

						-i SKIP--ignore-initial=SKIP


Ξεκινά τη σύγκριση μετά απο SKIP bytes.

						-i SKIP1:SKIP2--ignore-initial=SKIP1:SKIP2


Ξεκινά τη σύγκριση μετά απο SKIP1 bytes για το file1 και SKIP2 bytes για το file2.

						-l--verbose


Εμφανίζει πληροφορίες για όλα τα διαφορετικά bytes (θέσεις και τιμές).

						-n N--bytes=N


Η σύγκριση να γίνει για το πολύ N bytes.

						-s--quiet--silent


Η έξοδος να είναι σιωπηλή, να επιστραφεί μόνο ο κωδικός επιτυχίας ή αποτυχίας του προγράμματος.

Η εντολή comm

Η εντολή comm συγκρίνει δύο προηγουμένως ταξινομημένα αρχεία και εμφανίζει επιλεκτικά τρεις στήλες: μια με τις γραμμές που υπάρχουν μόνο στο πρώτο αρχείο, μια με τις γραμμές που υπάρχουν μόνο στο δεύτερο αρχείο και μια με τις κοινές γραμμές. Αυτή η παραμετροποίηση είναι και η μόνη επιλογή που δέχεται η εντολή. Συγκεκριμένα:

comm [-N] file1 file2

όπου -N ο αριθμός του οποίου τα ψηφία αποτελούνται από τις στήλες που επιλέγετε να εμφανιστούν, δηλαδή για τις στήλες 1 και 3 θα πρέπει να δώσετε:

comm -13 file1 file2

Η εντολή diff

Η εντολή diff είναι ένα ισχυρό εργαλείο για σύγκριση αρχείων ακόμη και καταλόγων και μπορεί να παραμετροποιηθεί σε μεγάλο βαθμό.

Η σύνταξη της diff δεν διαφέρει από των άλλων εντολών που έχουμε δεί ως τώρα:

diff [OPTIONS] file1 file2

ή για σύγκριση καταλόγων

diff [OPTIONS] dir1 dir2

όπου dir1, dir2 τα ονόματα των καταλόγων που θέλουμε να συγκρίνουμε.

Η diff προσφέρει μια πληθώρα από επιλογές, από τις οποίες θα αναφέρουμε τις σημαντικότερες:

 

Επιλογές

Λειτουργία

						-i--ignore-case


Αγνοεί τις διαφορές μεταξύ πεζών-κεφαλαίων γραμμάτων.

						-b--ignore-space-change


Αγνοεί τις αλλαγές που οφείλονται σε κενούς χαρακτήρες.

						-w--ignore-all-space


Αγνοεί όλους τους κενούς χαρακτήρες.

						-B--ignore-blank-lines


Αγνοεί όλες τις κενές γραμμές.

						-a--text


Αντιμετωπίζει όλα τα αρχεία ως αρχεία κειμένου.

						-c-C NUM--context[=NUM]


Εμφανίζει Ν (προκαθορισμένη τιμή 3) γραμμές αντιγραμμένου περιεχομένου.

						-u-U N--unified[=N]


Εμφανίζει Ν (προκαθορισμένη τιμή 3) γραμμές ενωποιημένου περιεχομένου.

						-y--side-by-side


Εμφάνιση σε δύο στήλες.

						-r--recursive


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

						-N--new-file


Αντιμετωπίζει μή υπάρχοντα αρχεία ως άδεια (για να μπορεί να κάνει τη σύγκριση, διαφορετικά επιστρέφει μήνυμα λάθους).

Ο τρόπος του ενωποιημένου περιεχομένου είναι και αυτός που χρησιμοποιείται κατά κόρον για την δημιουργία patches.




Μοιραστείτε αυτό το άρθρο
Reddit! Del.icio.us! Mixx! Free and Open Source Software News Google! Live! Facebook! StumbleUpon! Yahoo! Dig Me Joomla Free PHP

Σχόλια
Προσθήκη νέου Αναζήτηση RSS
Γράψτε σχόλιο
Όνομα:
Email:
 
Τίτλος:
 
Please input the anti-spam code that you can read in the image.
Τελευταία Ενημέρωση ( Σάββατο, 04 Οκτώβριος 2008 01:33 )  

Seach By Google

Translate this website :

Επιλογές


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99

Programming


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99

Fedora


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99

CentOS


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99

Linux


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99

Ubuntu


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99

Debian


Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in /home/flakgr/public_html/libraries/joomla/cache/handler/callback.php on line 99


Τελευταία Σχόλια