Αρχεία κειμένου
Τα συστήματα UNIX βασίζονται σε μεγάλο βαθμό σε σενάρια κελύφους για πολλές λειτουργίες τους και αυτά δεν είναι παρά κοινά αρχεία κειμένου. Είναι, λοιπόν, απαραίτητη η ύπαρξη εργαλείων που θα χειρίζονται αυτά τα αρχεία κειμένου. Η ανάγκη αυτή οδήγησε στη δημιουργία μιας πληθώρας εργαλείων για την εμφάνιση και επεξεργασία των αρχείων κειμένου στο UNIX, το καθένα εξειδικευμένο σε μια ή και περισσότερες χρήσεις. Υπάρχουν εργαλεία απλώς για εμφάνιση, για ανάστροφη εμφάνιση, για εμφάνιση με σελιδοποίηση, για εμφάνιση μόνο της κεφαλίδας (header) ή του τέλους του αρχείου, για καταμέτρηση γραμμών, λέξεων ή χαρακτήρων ενός αρχείου κλπ. Θα αναφέρουμε εδώ τα βασικά εργαλεία που θα χρειαστείτε.
“less is more”
Από τα πιο χρήσιμα προγράμματα είναι οι σελιδοποιητές (pagers) που επιτρέπουν την εμφάνιση ενός αρχείου κειμένου ανά σελίδα. Η χρήση τους είναι αρκετά απλή και συχνά προσφέρουν online βοήθεια. Ένα από τα πρώτα προγράμματα σελιδοποιητής που χρησιμοποιείται ακόμη είναι το more, αν και πλέον θεωρείται ξεπερασμένο. Πολύ πιο εύχρηστο και λειτουργικό είναι το πρόγραμμα less που ονομάστηκε έτσι χάριν του λογοπαίγνιου “less is more”!
Και τα δύο προγράμματα είναι πολύ απλά στη χρήση τους και η σύνταξή τους είναι η εξής:
$ more textfile $ less textfile
Αν και δέχονται επιλογές στην γραμμή εντολών, είναι πιο απλή η παραμετροποίησή τους κατά τη διάρκεια της εκτέλεσής τους. Πατώντας 'h' ανά πάσα στιγμή εμφανίζεται μια οθόνη βοηθείας όπου αναλύεται η χρήση του κάθε προγράμματος.
Εντολές cat και tac
Οι εντολές cat και tac τυπώνουν στην πρότυπη έξοδο το αρχείο ή τα αρχεία που δέχονται ως παραμέτρους. Η διαφορά της tac είναι ότι τυπώνει το αρχείο ανάστροφα, από το τέλος προς την αρχή.
Ειδικά η εντολή cat είναι πολύ χρήσιμη, καθώς μπορεί να χρησιμοποιηθεί για αντιγραφή, συνένωση, προσάρτηση αρχείων, όπως θα δούμε και στα ακόλουθα παραδείγματα.
Η σύνταξή της είναι:
cat [OPTIONS] file ... tac [OPTIONS] file ...
Αν δεν δοθεί όνομα αρχείου, λαμβάνεται η πρότυπη είσοδος (standard input). Οι επιλογές που δέχεται η cat είναι οι εξής:
|
Επιλογές
|
Λειτουργία
|
|
-A --show-all |
Ισοδύναμο με τη χρήση των επιλογών -vET. |
|
-b --number-nonblank |
Αρίθμηση μη κενών γραμμών. |
|
-E --show-ends |
Εμφάνιση του χαρακτήρα $ στο τέλος κάθε γραμμής (Linefeed). |
|
-n --number |
Αρίθμηση όλων των γραμμών (ακόμη και των κενών). |
|
-T --show-tabs |
Εμφάνιση του χαρακτήρα TAB ως ^I. |
|
-v --show-nonprinting |
Εμφάνιση των μη εκτυπώσιμων χαρακτήρων χρησιμοποιώντας τη σύνταξη ^ (CTRL-) και M- (ESC-). Δεν τυπώνει τους χαρακτήρες Linefeed και TAB. |
Παραδείγματα χρήσης της cat:
$ cat file1 file2 |less
Τυπώνει τα περιεχόμενα των αρχείων file1 και file2 στην πρότυπη έξοδο και μέσω σωλήνωσης στην εντολή less.
$ cat file1 >file2 $ cat <file1 >file2
Οι δύο αυτές εντολές αντιγράφουν το αρχείο file1 στο αρχείο file2 και είναι ισοδύναμες με την εντολή αντιγραφής αρχείων cp:
cp file1 file2
$ cat file1 file2 >> file3
Προσάρτηση των αρχείων file1 και file2 στο τέλος του αρχείου file3.
$ cat part*.txt >whole.txt
Συνένωση όλων των αρχείων part*.txt σε ένα ενιαίο αρχείο whole.txt.
$ cat >file This is a piece of text. EOF $ cat file This is a piece of text.
Η πρώτη κλήση της cat χρησιμοποιεί την πρότυπη είσοδο στην οποία δίνουμε το κείμενο “This is a piece of text.” και το χαρακτήρα EOF (End of file, συνήθως [CTRL]-\). Η δεύτερη κλήση της cat απλώς τυπώνει αυτό που δημιουργήσαμε.
Εντολές head και tail
Οι εντολές head και tail εμφανίζουν την κεφαλίδα και το τέλος (την “ουρά”) ενός αρχείου κειμένου αντίστοιχα. Ειδικά η εντολή tail είναι από τα πιο χρήσιμα εργαλεία για τους διαχειριστές συστήματος.
head [OPTIONS] file tail [OPTIONS] file
όπου file το αρχείο ή τα αρχεία των οποίων θέλουμε την κεφαλίδα ή το τέλος. Ορισμένες από τις επιλογές των εντολών head και tail αναγράφονται στον επόμενο πίνακα:
|
Επιλογές
|
Λειτουργία
|
|
-c N --bytes=N |
Εμφάνιση των πρώτων (για τη head) ή των τελευταίων (για την tail) N bytes. |
|
-n N --lines=N |
Εμφάνιση των πρώτων (για τη head) ή των τελευταίων (για την tail) N γραμμών κειμένου. Η προκαθορισμένη τιμή για το N είναι 10. |
|
-f --follow |
(Μόνο για την tail) Εμφάνιση των προσαρτημένων γραμμών καθώς το αρχείο μεγαλώνει. Η follow δέχεται τις επιλογές descriptor ή name. Η προκαθορισμένη είναι η descriptor, με την οποία η tail παρακολουθεί το αρχείο ακόμη και αν αλλάξει όνομα (στην ουσία παρακολουθεί το file descriptor). Με την επιλογή name, η tail παρακολουθεί πάντα το αρχείο που φέρει το όνομα file. |
| -F | (Μόνο για την tail) Ισοδύναμο με --follow=name --retry. |
| --retry | (Μόνο για την tail) Ξαναπροσπαθεί να ανοίξει το αρχείο file ακόμη και αν δεν είναι προσπελάσιμο όταν η tail ξεκινάει ή κατά τη διάρκεια της εκτέλεσής της. Η επιλογή αυτή είναι χρήσιμη μόνο σε συνδυασμό με τη -f. |
Ακολουθούν παραδείγματα χρήσης της head και tail:
$ head -c 1000 file
Τυπώνει τα 1000 πρώτα bytes του αρχείου file.
$ tail -n 100 file
Τυπώνει τις τελευταίες 100 γραμμές του αρχείου file.
$ tail -f logfile
Παρακολουθεί και εμφανίζει τα περιεχόμενα του αρχείου logfile, ακόμη και αν αυτό αλλάξει όνομα ή θέση.
$ tail -F /var/log/syslog
Παρακολουθεί και εμφανίζει τα περιεχόμενα του αρχείου που φέρει πάντα το όνομα /var/log/syslog ακόμη και αν αυτό αλλάξει κατά τη διάρκεια εκτέλεσης της εντολής tail.
Καταμέτρηση περιεχομένων αρχείων με τη wc
Για την καταμέτρηση των περιεχομένων των αρχείων χρησιμοποιούμε την εντολή wc. Η εντολή wc επιστρέφει στατιστικές πληροφορίες για ένα αρχείο κειμένου, και συγκεκριμένα τον αριθμό των bytes, χαρακτήρων, λέξεων και γραμμών του αρχείου. Ακολουθεί την ίδια σύνταξη:
wc [OPTIONS] file ...
ή αν δεν δοθεί το file, χρησιμοποιείται η πρότυπη είσοδος (standard input). Δέχεται τις εξής επιλογές:
|
Επιλογές
|
Λειτουργία
|
|
-c --bytes |
Εμφανίζει τον αριθμό των bytes του αρχείου. |
|
-m --chars |
Εμφανίζει τον αριθμό των χαρακτήρων του αρχείου. |
|
-l --lines |
Εμφανίζει τον αριθμό των γραμμών κειμένου του αρχείου. |
|
-L --max-line-length |
Τυπώνει το μήκος της μεγαλύτερης σε μήκος γραμμής. |
|
-w --words |
Εμφανίζει τον αριθμό των λέξεων του αρχείου. |
Παραδείγματα:
[/code]
$ wc sample.txt
10 29 278 sample.txt
[/code]
Δηλαδή το αρχείο sample.txt έχει 278 χαρακτήρες, 29 λέξεις και 10 γραμμές κειμένου.
Η wc χρησιμοποιείται συχνά σε συνδυασμό με άλλες εντολές. Π.χ., για να δούμε πόσους χρήστες έχουμε συνδεδεμένους στο σύστημα αυτή τη στιγμή:
[/code]
$ who |wc -l
17
[/code]
δηλαδή έχουμε 17 χρήστες συνδεδεμένους στο σύστημα αυτή τη στιγμή.
Active forum topics
- Wake up from suspend mode failed
- Οργάνωση στις μεταφράσεις των ελληνικών στο Debian.
- απορια σχετικα με nvidia440
- πρόβλημα εγκατάστασης nvidia driver GTS250.
- kernel 2.6.38 για squeeze
- Gnome3
- 2 μήνες σπασμένο το upgrade σε unstable [SOLVED]
- Οι χρήστες του Internet Explorer είναι χαζοί;
- Debian Lenny + Nvidia drivers
- εγκατασταση usb cosmote
New forum topics
Νέοι χρήστες
- kountp
- Adonthegreat
- giorgos_m
- prodromos
- airmaik
Οι πιο πρόσφατες καταχωρίσεις blog.
- Fosscomm 2012
- armhf officially into Debian!
- back from UDS/Linaro Connect...
- FTF is over, Linaro Interview
- straight from FTF 2011, San Antonio...
- Όσο μεγαλώνεις μαθαίνεις...
- Emdebian 2011 Sprint report, Genesi Europe store goes online...
- Θεσσαλονίκη - open source ERP workshop
- Χρήσιμο URL για Flash Cards και Linux filesystems
- Cambridge, UK, ARM HQ for Emdebian 2011 Sprint