Πώς να παραλείψετε την πρώτη γραμμή ενός αρχείου χρησιμοποιώντας το `awk`

How Skip First Line File Using Awk



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

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

Για να ακολουθήσετε αυτό το σεμινάριο, δημιουργήστε ένα αρχείο κειμένου με ονομασία καρτέλας booklist.txt με το ακόλουθο περιεχόμενο. Αυτό το αρχείο περιέχει μια λίστα βιβλίων με τους αντίστοιχους συγγραφείς τους. Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να εκτυπώνετε διαφορετικά μέρη αυτού του αρχείου αφού παραλείψετε την πρώτη γραμμή.







Κυβερνοασφάλεια με bash Paul Troncone, Carl Albing

Γραμμή εντολών Kung Fu Jason Cannon

Περίπτερο Travis Booth Γραμμή εντολών

Bash σε εύκολα βήματα Mike McGrath

Unix σε εύκολα βήματα Mike McGrath

Παράδειγμα 1: Παραλείψτε την πρώτη γραμμή ενός αρχείου χρησιμοποιώντας το NR και τον τελεστή «>»

Η μεταβλητή NR υποδεικνύει τον αριθμό των εγγραφών σε ένα αρχείο. Η ακόλουθη εντολή `awk` χρησιμοποιεί τη μεταβλητή NR για να παραλείψει την πρώτη γραμμή ενός αρχείου. Η τιμή του NR είναι 1 για την πρώτη γραμμή. Η ακόλουθη εντολή θα εκτυπώσει γραμμές για τις οποίες η τιμή NR είναι μεγαλύτερη από 1.



$Γάταbooklist.txt

$awk '(ΟΧΙ> 1)'booklist.txt

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







Παράδειγμα 2: Παραλείψτε την πρώτη γραμμή χρησιμοποιώντας το NR και τον τελεστή '! ='

Η ακόλουθη εντολή `awk` είναι παρόμοια με εκείνη στο προηγούμενο παράδειγμα. Ωστόσο, ο τελεστής σύγκρισης «! =» Χρησιμοποιείται εδώ αντί για «>».

$Γάταbooklist.txt

$awk 'NR! = 1'booklist.txt

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



Παράδειγμα 3: Παραλείψτε την πρώτη γραμμή ενός αρχείου χρησιμοποιώντας μια δήλωση υπό όρους

Η ακόλουθη εντολή `awk` θα εκτυπώσει τις γραμμές του αρχείου εάν η δήλωση if είναι αληθής. Εδώ, η δήλωση if θα είναι αληθής μόνο όταν η τιμή NR δεν είναι ίση με 1.

$Γάταbooklist.txt

$awk '{if (NR! = 1) {print}}'booklist.txt

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

Παράδειγμα 4: Εκτυπώστε τα ονόματα των βιβλίων από το αρχείο αλλά παραλείψτε την πρώτη γραμμή

Δύο εντολές `awk` χρησιμοποιούνται σε αυτό το παράδειγμα για την εκτύπωση όλων των ονομάτων βιβλίων εκτός από το πρώτο. Η εντολή `awk` θα διαβάσει την πρώτη στήλη από το αρχείο βάσει του διαχωριστή πεδίου ( t) και θα στείλει την έξοδο στη δεύτερη εντολή` awk`. Η δεύτερη εντολή `awk` θα εκτυπώσει την επιθυμητή έξοδο.

$Γάταbooklist.txt

$awk -ΦΑ ' t' '{print $ 1}'booklist.txt| awk 'NR! = 1 εκτύπωση}'

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

Παράδειγμα 5: Μορφοποιήστε το περιεχόμενο του αρχείου αφού παραλείψετε την πρώτη γραμμή

Η επιλογή '-F', η μεταβλητή NR και η συνάρτηση printf χρησιμοποιούνται στην ακόλουθη εντολή `awk` για να δημιουργήσουν μορφοποιημένη έξοδο μετά την παράβλεψη της πρώτης γραμμής. Η εντολή θα χωρίσει το περιεχόμενο του αρχείου σε στήλες με βάση το t και το printf θα εκτυπώσει την πρώτη και τη δεύτερη στήλη όταν η τιμή NR είναι τουλάχιστον 2.

$Γάταbooklist.txt

$awk -ΦΑ ' t' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'booklist.txt

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

Παράδειγμα 6: Εκτυπώστε τα ονόματα των βιβλίων αφού παραλείψετε την πρώτη γραμμή χρησιμοποιώντας NR και NF

Η ακόλουθη εντολή `awk` χρησιμοποιεί την επιλογή '-F' και NR και NF για να εκτυπώσει τα ονόματα των βιβλίων αφού παραλείψετε το πρώτο βιβλίο. Η επιλογή '-F' χρησιμοποιείται για τον διαχωρισμό του περιεχομένου της βάσης αρχείων στο t. Το NR χρησιμοποιείται για να παραλείψετε την πρώτη γραμμή και το NF χρησιμοποιείται για την εκτύπωση μόνο της πρώτης στήλης.

$Γάταbooklist.txt

$awk -ΦΑ ' t' 'NR> 1 && NF = 1'booklist.txt

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

Παράδειγμα 7: Εκτυπώστε τα μορφοποιημένα ονόματα συγγραφέων αφού παραλείψετε την πρώτη γραμμή

Η ακόλουθη εντολή `awk` χρησιμοποιεί την επιλογή '-F' και μια δήλωση υπό όρους για να εκτυπώσει τα ονόματα των συγγραφέων αφού παραλείψει την πρώτη γραμμή. Εδώ, η τιμή NR χρησιμοποιείται στην κατάσταση if. Εδώ, Όνομα Συντάκτη: n n θα εκτυπωθεί ως η πρώτη γραμμή αντί για το περιεχόμενο από την πρώτη γραμμή. Τα ονόματα του συγγραφέα από το αρχείο θα εκτυπωθούν για τις άλλες τιμές του NR.

$Γάταbooklist.txt

$awk -ΦΑ ' t' '{if (NR == 1) printf' n Όνομα συγγραφέα: n n '; else printf '%s n', $ 2} 'booklist.txt

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

συμπέρασμα

Η πρώτη γραμμή ενός αρχείου μπορεί να παραλειφθεί χρησιμοποιώντας διάφορες εντολές Linux. Όπως φαίνεται σε αυτό το σεμινάριο, υπάρχουν διάφοροι τρόποι για να παραλείψετε την πρώτη γραμμή ενός αρχείου χρησιμοποιώντας την εντολή `awk`. Σημειωτέον, η μεταβλητή NR της εντολής `awk` μπορεί να χρησιμοποιηθεί για να παραλείψετε την πρώτη γραμμή οποιουδήποτε αρχείου.