Android

Η εντολή cut Linux με παραδείγματα

Week 1

Week 1

Πίνακας περιεχομένων:

Anonim

Υπάρχουν πολλά βοηθητικά προγράμματα διαθέσιμα σε συστήματα Linux και Unix που σας επιτρέπουν να επεξεργάζεστε και να φιλτράρετε αρχεία κειμένου. Το Cut είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που σας επιτρέπει να κόβετε τμήματα γραμμών από συγκεκριμένα αρχεία ή δεδομένα με σωληνώσεις και να εκτυπώνετε το αποτέλεσμα στην τυπική έξοδο. Μπορεί να χρησιμοποιηθεί για να κόψει τμήματα μιας γραμμής με οριοθέτη, θέση byte και χαρακτήρα.

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

Πώς να χρησιμοποιήσετε την εντολή Cut

Η σύνταξη της εντολής περικοπής έχει ως εξής:

cut OPTION……

Όταν χρησιμοποιείτε την εντολή cut πρέπει να χρησιμοποιήσετε μία και μόνο μία από τις ακόλουθες επιλογές:

  • -f ( --fields=LIST ) - Επιλέξτε με τον καθορισμό ενός πεδίου, ενός συνόλου πεδίων ή μιας σειράς πεδίων. Αυτή είναι η πιο συχνά χρησιμοποιούμενη επιλογή. -b ( --bytes=LIST ) - Επιλέξτε με καθορισμό ενός byte, ενός συνόλου bytes ή μιας σειράς byte. -c ( --characters=LIST ) - Επιλέξτε με τον καθορισμό ενός χαρακτήρα, ενός συνόλου χαρακτήρων ή ενός εύρους χαρακτήρων.

Άλλες επιλογές είναι:

  • -d ( --delimiter ) - Καθορίστε έναν --delimiter που θα χρησιμοποιηθεί αντί του προεπιλεγμένου οριοθέτη "TAB". - συμπλήρωση - συμπληρώνουν την επιλογή. Όταν χρησιμοποιείτε αυτήν την επιλογή, η περικοπή θα εμφανίζει όλα τα bytes, τους χαρακτήρες ή τα πεδία εκτός από την επιλεγμένη. -s (- --only-delimited ) - Από προεπιλογή, η περικοπή θα εκτυπώσει οποιαδήποτε γραμμή που δεν περιέχει κανένα χαρακτήρα οριοθέτησης. Όταν χρησιμοποιείτε αυτήν την επιλογή, η περικοπή δεν θα εκτυπώσει γραμμές που δεν περιέχουν οριοθέτες. --output-delimiter - Η προεπιλογή είναι να χρησιμοποιήσετε τον οριοθέτη εισόδου ως οριοθέτη εξόδου. Αυτή η επιλογή σάς επιτρέπει να καθορίσετε μια διαφορετική συμβολοσειρά οριοθέτησης εξόδου.

Η εντολή περικοπή μπορεί να αποδεχθεί τα μηδέν ή περισσότερα ονόματα FILE εισόδου. Εάν δεν έχει οριστεί κανένα ΑΡΧΕΙΟ ή όταν το ΑΡΧΕΙΟ είναι - , η περικοπή θα διαβάσει την τυπική είσοδο.

Το όρισμα LIST που μεταβιβάζεται στις επιλογές -f , -b και -c μπορεί να είναι ένας ακέραιος, πολλαπλοί ακέραιοι χωρισμένοι με κόμματα, ένα εύρος ακέραιων ή πολλαπλές ακέραιες σειρές διαχωρισμένες με κόμματα. Κάθε περιοχή μπορεί να είναι ένα από τα παρακάτω:

  • N το πεδίο N, byte ή χαρακτήρα, ξεκινώντας από 1. N- από το πεδίο Nth, byte ή character, μέχρι το τέλος της γραμμής. NM από το πεδίο Nth στο πεδίο Mth, byte ή χαρακτήρα. -M από το πρώτο στο πεδίο Mth, byte ή χαρακτήρα.

Πώς να κοπεί από το πεδίο

Η εντολή Cut χρησιμοποιείται κυρίως για την εμφάνιση επιλεγμένων πεδίων από κάθε γραμμή αρχείων ή την τυπική είσοδο. Όταν δεν έχει καθοριστεί ο προεπιλεγμένος οριοθέτης είναι "TAB".

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

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Για να εμφανίσετε το 1ο και το 3ο πεδίο θα χρησιμοποιήσετε:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

Ή αν θέλετε να εμφανίσετε από το 1ο έως το 4ο πεδίο:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Πώς να κόψετε με βάση έναν απομεμακρυστή

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

Για παράδειγμα, για να εμφανίσετε το 1ο και 3ο πεδίο χρησιμοποιώντας το ":" ως οριοθέτη, πληκτρολογήστε:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Μπορείτε να χρησιμοποιήσετε οποιοδήποτε μοναδικό χαρακτήρα ως οριοθέτη. Στο παρακάτω παράδειγμα χρησιμοποιούμε τον χαρακτήρα ως διαχωριστικό και εκτυπώνουμε το 2ο πεδίο:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Πώς να συμπληρώσετε την επιλογή

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

Η ακόλουθη εντολή θα εκτυπώσει όλα τα πεδία εκτός από την 1η και την 3η:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

Πώς να ορίσετε έναν αποχωριστή εξόδου

Για να ορίσετε τον οριοθέτη εξόδου, χρησιμοποιήστε την επιλογή --output-delimiter . Για παράδειγμα, για να ορίσετε τον απομεμακρυστή εξόδου σε _ θα χρησιμοποιούσατε:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Πώς να κόψετε Bytes και Χαρακτήρες

Πριν προχωρήσουμε περαιτέρω, ας κάνουμε μια διάκριση μεταξύ των bytes και των χαρακτήρων.

Ένα byte είναι 8 bits και μπορεί να αντιπροσωπεύει 256 διαφορετικές τιμές. Όταν καθιερώθηκε το πρότυπο ASCII, έλαβε υπόψη όλα τα γράμματα, τους αριθμούς και τα σύμβολα που απαιτούνται για την εργασία με τα αγγλικά. Ο πίνακας χαρακτήρων ASCII έχει 128 χαρακτήρες και κάθε χαρακτήρας αντιπροσωπεύεται από ένα byte. Όταν οι υπολογιστές άρχισαν να γίνονται παγκοσμίως δημοφιλείς, οι εταιρείες τεχνολογίας άρχισαν να εισάγουν νέες κωδικοποιήσεις χαρακτήρων για διαφορετικές γλώσσες και για γλώσσες που έχουν περισσότερους από 256 χαρακτήρες, δεν ήταν δυνατή η απλή χαρτογράφηση 1 προς 1. Αυτό οδηγεί σε διαφορετικά προβλήματα όπως η ανταλλαγή εγγράφων ή η περιήγηση σε ιστοσελίδες και ένα νέο πρότυπο Unicode που μπορεί να χειριστεί τα περισσότερα από τα συστήματα γραφής παγκοσμίως ήταν απαραίτητο. Το UTF-8 δημιουργήθηκε για την επίλυση αυτών των προβλημάτων. Στο UTF-8, δεν εμφανίζονται όλοι οι χαρακτήρες με 1 byte. Οι χαρακτήρες μπορούν να εκπροσωπούνται με 1 byte έως 4 byte.

Στα παραδείγματα που ακολουθούν, χρησιμοποιούμε το χαρακτήρα ü που παίρνει 2 byte.

Χρησιμοποιήστε την επιλογή -b ( --bytes ) για να αφαιρέσετε ένα τμήμα μιας γραμμής καθορίζοντας μια θέση byte.

Επιλέξτε το 5ο byte:

echo 'drüberspringen' | cut -b 5

b

Επιλέξτε το 5ο, 9ο και 13ο bytes:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

Επιλέξτε το εύρος από το 1ο έως το 5ο byte:

echo 'drüberspringen' | cut -b 1-5

drüb

Κατά τη στιγμή της σύνταξης αυτού του άρθρου, η έκδοση της περικοπής που περιλαμβάνεται στο GNU coreutils δεν έχει την επιλογή να κοπεί με χαρακτήρες. Όταν χρησιμοποιείτε την περικοπή επιλογής -c συμπεριφέρεται όπως και όταν χρησιμοποιείτε την επιλογή -b .

Παραδείγματα κοπής

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

Αποκτήστε μια λίστα με όλους τους χρήστες

Η έξοδος της εντολής getent passwd διαβιβάζεται σε cut οποία εκτυπώνει το πρώτο αρχείο με χρήση : ως οριοθέτη.

getent passwd | cut -d ':' -f1

Δείτε τις 10 πιο συχνά χρησιμοποιούμενες εντολές

Στο ακόλουθο παράδειγμα το κομμάτι χρησιμοποιείται για την απογύμνωση των πρώτων 8 byte από κάθε γραμμή της εξόδου της εντολής history .

history | cut -c8- | sort | uniq -c | sort -rn | head

συμπέρασμα

Μέχρι τώρα θα πρέπει να έχετε καλή κατανόηση του τρόπου χρήσης της εντολής περικοπής Linux. Αν και πολύ χρήσιμη, η εντολή περικοπής έχει κάποιους περιορισμούς. Δεν υποστηρίζει τον προσδιορισμό περισσότερων από έναν χαρακτήρες ως οριοθέτη και δεν υποστηρίζει πολλά δεκαδικά.

cut terminal