Πώς να χρησιμοποιήσετε τις εντολές «cat» και «tac» με παραδείγματα στο Linux


Αυτό το άρθρο αποτελεί μέρος της σειράς Κόλπα και Συμβουλές για το Linux, σε αυτό το άρθρο θα καλύψουμε ορισμένες βασικές χρήσεις της εντολής cat (η πιο συχνά χρησιμοποιούμενη εντολή στο Linux) και της tac ( εντολή reverse of cat – εκτύπωση αρχείων με αντίστροφη σειρά) με μερικά πρακτικά παραδείγματα.

Διαβάστε επίσης: 13 χρήσιμα παραδείγματα εντολών "cat" στο Linux

Βασική χρήση του Cat Command στο Linux

Η εντολή Cat, ακρωνύμιο του Concatenate, είναι μία από τις πιο χρησιμοποιούμενες εντολές στα συστήματα *nix. Η πιο βασική χρήση της εντολής είναι η ανάγνωση αρχείων και η εμφάνισή τους στο stdout, δηλαδή η εμφάνιση του περιεχομένου των αρχείων στο τερματικό σας.

cat file.txt

Μια άλλη χρήση της εντολής cat είναι η ανάγνωση ή ο συνδυασμός πολλών αρχείων μαζί και η αποστολή της εξόδου σε μια οθόνη όπως φαίνεται στα παρακάτω παραδείγματα.

cat file1.txt file2.txt file3.txt

Η εντολή μπορεί επίσης να χρησιμοποιηθεί για τη σύνδεση (ένωση) πολλών αρχείων σε ένα μόνο αρχείο χρησιμοποιώντας τον τελεστή ανακατεύθυνσης Linux “> ”.

cat file1.txt file2.txt file3.txt > file-all.txt

Χρησιμοποιώντας το πρόγραμμα ανακατεύθυνσης προσάρτησης, μπορείτε να προσθέσετε το περιεχόμενο ενός νέου αρχείου στο κάτω μέρος του file-all.txt με την ακόλουθη σύνταξη.

cat file4.txt >> file-all.txt

Η εντολή cat μπορεί να χρησιμοποιηθεί για την αντιγραφή του περιεχομένου του αρχείου σε ένα νέο αρχείο. Το νέο αρχείο μπορεί να μετονομαστεί σε αυθαίρετο. Για παράδειγμα, αντιγράψτε το αρχείο από την τρέχουσα θέση στον κατάλογο /tmp/.

cat file1.txt > /tmp/file1.txt 

Αντιγράψτε το αρχείο από την τρέχουσα θέση στον κατάλογο /tmp/ και αλλάξτε το όνομά του.

cat file1.txt > /tmp/newfile.cfg

Μια μικρότερη χρήση της εντολής cat είναι η δημιουργία ενός νέου αρχείου με την παρακάτω σύνταξη. Όταν ολοκληρώσετε την επεξεργασία του αρχείου, πατήστε CTRL+D για αποθήκευση και έξοδο από το νέο αρχείο.

cat > new_file.txt

Για να αριθμήσετε όλες τις γραμμές εξόδου ενός αρχείου, συμπεριλαμβανομένων των κενών γραμμών, χρησιμοποιήστε το διακόπτη -n.

cat -n file-all.txt

Για να εμφανίσετε μόνο τον αριθμό κάθε μη κενού γραμμής χρησιμοποιήστε το διακόπτη -b.

cat -b file-all.txt

Θέλετε να μάθετε περισσότερα για την εντολή Linux cat; στη συνέχεια διαβάστε το άρθρο μας σχετικά με 13 χρήσιμα παραδείγματα εντολών «γάτας» στο Linux.

Μάθετε πώς να χρησιμοποιείτε την εντολή Tac στο Linux

Από την άλλη πλευρά, μια λιγότερο γνωστή και λιγότερο χρησιμοποιούμενη εντολή στα συστήματα *nix είναι η εντολή tac. Το Tac είναι πρακτικά η αντίστροφη έκδοση της εντολής cat (επίσης γραμμένη προς τα πίσω) η οποία εκτυπώνει κάθε γραμμή ενός αρχείου ξεκινώντας από την κάτω γραμμή και τελειώνοντας στην επάνω γραμμή μέχρι το πρότυπο του μηχανήματός σας παραγωγή.

tac file-all.txt

Μία από τις πιο σημαντικές επιλογές της εντολής αντιπροσωπεύεται από τον διακόπτη -s, ο οποίος διαχωρίζει τα περιεχόμενα του αρχείου με βάση μια συμβολοσειρά ή μια λέξη-κλειδί από το αρχείο.

tac file-all.txt --separator "two"

Στη συνέχεια, η πιο σημαντική χρήση της εντολής tac είναι ότι μπορεί να προσφέρει μεγάλη βοήθεια για τον εντοπισμό σφαλμάτων στα αρχεία καταγραφής, αντιστρέφοντας τη χρονολογική σειρά των περιεχομένων των αρχείων καταγραφής.

tac /var/log/auth.log

Or to display the last lines

tail /var/log/auth.log | tac
Δείγμα εξόδου
tecmint@tecmint ~ $ tac /var/log/auth.log
pr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr  6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr  6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr  6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr  6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr  6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...

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