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

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

Τι είναι η εντολή sed;

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

Οι τρεις βασικές λειτουργίες που υποστηρίζονται από την εντολή sed είναι:

  1. Εισαγωγή
  2. Διαγραφή
  3. Αντικατάσταση (Εύρεση και αντικατάσταση)
instagram viewer

Οι προχωρημένοι χρήστες μπορούν επίσης να εφαρμόσουν κανονικές εκφράσεις με την εντολή sed για την πιο αποτελεσματική επεξεργασία ροών κειμένου.

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

sed [επιλογές] [μοτίβο] [filepath]

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

10 Παραδείγματα της εντολής Linux sed

Εάν σκοπεύετε να γίνετε κανονικός χρήστης Linux, γνωρίζοντας πώς να επεξεργάζεστε αρχεία, αναζητήστε και αντικαταστήστε συγκεκριμένες λέξεις και φιλτράρετε την έξοδο του τερματικού μπορεί να σας φανεί χρήσιμο. Αυτή η ενότητα καλύπτει μερικά παραδείγματα της εντολής sed που σίγουρα θα σας μετατρέψουν σε Linux power user.

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

Αυτό είναι ένα αρχείο κειμένου επίδειξης.
Είναι ένα καταπληκτικό αρχείο που θα μας βοηθήσει όλους.
Η εντολή sed είναι επίσης ιδανική για επεξεργασία ροής.
Θέλετε να μάθετε πώς να χρησιμοποιείτε την εντολή;
Αυτή είναι μια άλλη γραμμή στο αρχείο.
Αυτή είναι η τρίτη γενική γραμμή στο αρχείο.
Αυτό το αρχείο ονομάζεται textfile.
Αυτό είναι ένα μήλο.
Αυτό είναι ένα πορτοκάλι.

1. Δείτε μια σειρά γραμμών

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

Για έξοδο του περιεχομένου μεταξύ των γραμμών 3 και 5 του αρχείου textfile.txt:

sed -n '3,5p' textfile.txt

ο Η σημαία αποτρέπει την εμφάνιση του χώρου μοτίβου στο τέλος κάθε κύκλου. Μπορείτε επίσης να χρησιμοποιήσετε το --ησυχια και --σιωπηλός επιλογές αντί για . ο Π όρισμα σημαίνει Τυπώνω και χρησιμοποιείται για την εμφάνιση των αντιστοιχισμένων γραμμών στον χρήστη.

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

Η εντολή sed είναι επίσης ιδανική για επεξεργασία ροής.
Θέλετε να μάθετε πώς να χρησιμοποιείτε την εντολή;
Αυτή είναι μια άλλη γραμμή στο αρχείο.

Για έξοδο ολόκληρου του περιεχομένου αρχείου εκτός από το καθορισμένο εύρος, χρησιμοποιήστε το ρε σημαία αντί για Π στην εντολή:

sed '3,5d' textfile.txt

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

Αυτό είναι ένα αρχείο κειμένου επίδειξης.
Είναι ένα καταπληκτικό αρχείο που θα μας βοηθήσει όλους.
Αυτή είναι η τρίτη γενική γραμμή στο αρχείο.
Αυτό το αρχείο ονομάζεται textfile.
Αυτό είναι ένα μήλο.
Αυτό είναι ένα πορτοκάλι.

2. Εμφάνιση μη διαδοχικών γραμμών

Για να εκτυπώσετε μη διαδοχικές γραμμές μεταξύ πολλαπλών περιοχών στο αρχείο:

sed -n -e '1,2p' -e '5,6p' textfile.txt

Παραγωγή:

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

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

3. Εισαγωγή διαστήματος μεταξύ γραμμών

Εάν για οποιονδήποτε λόγο θέλετε να εισαγάγετε κενές γραμμές μεταξύ κάθε γραμμής σε ένα αρχείο κειμένου, χρησιμοποιήστε το σολ επιχείρημα με την προεπιλεγμένη εντολή sed.

sed G textfile.txt

Για να εισαγάγετε πολλές κενές γραμμές στην έξοδο, περάστε πολλαπλές σολ επιχειρήματα που διαχωρίζονται από το άνω τελεία (;) χαρακτήρα.

sed 'G; G 'textfile.txt

4. Αντικαταστήστε ένα Word σε ένα αρχείο κειμένου

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

sed s / originalword / substitword / g όνομα αρχείου

Χρησιμοποιώντας την παραπάνω σύνταξη, μπορείτε να αντικαταστήσετε τη λέξη φοβερο με σούπερ στο αρχείο textfile.txt:

sed s / amazing / super / g textfile.txt

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

Για να αντικαταστήσετε τη δεύτερη εμφάνιση της λέξης με sed, δώστε έναν αριθμό στο σολ διαφωνία. Σε αυτήν την περίπτωση:

sed s / amazing / super / g2 textfile.txt

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

sed s / Amazing / super / gi textfile.txt

Σχετιζομαι με: Χρησιμοποιείτε το Vi; Δείτε πώς μπορείτε να ανοίξετε ένα αρχείο και μετά να αποθηκεύσετε και να κλείσετε

5. Αντικατάσταση λέξεων μέσα σε ένα εύρος

Μπορείτε επίσης να αντικαταστήσετε λέξεις μέσα σε ένα συγκεκριμένο εύρος.

sed '2,5s / καταπληκτικό / σούπερ / g' textfile.txt

6. Εκτελέστε πολλές αντικαταστάσεις ταυτόχρονα

Εάν θέλετε να εκτελέσετε δύο ή περισσότερες αντικαταστάσεις ταυτόχρονα, διαχωρίστε τις εντολές με το άνω τελεία (;) χαρακτήρα.

sed / καταπληκτικό / σούπερ / g; s / command / utiliti / gi 'textfile.txt

Το σύστημα θα εμφανίσει την ακόλουθη έξοδο.

Αυτό είναι ένα αρχείο κειμένου επίδειξης.
Είναι ένα σούπερ αρχείο που θα μας βοηθήσει όλους.
Το βοηθητικό πρόγραμμα sed είναι επίσης ιδανικό για επεξεργασία ροής.
Θέλετε να μάθετε πώς να χρησιμοποιείτε το βοηθητικό πρόγραμμα;
Αυτή είναι μια άλλη γραμμή στο αρχείο.
Αυτή είναι η τρίτη γενική γραμμή στο αρχείο.
Αυτό το αρχείο ονομάζεται textfile.
Αυτό είναι ένα μήλο.
Αυτό είναι ένα πορτοκάλι.

7. Αντικαταστήστε τις λέξεις μόνο εάν βρεθεί αντιστοιχία

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή sed για να αντικαταστήσετε μια λέξη μόνο εάν μια συγκεκριμένη αντιστοίχιση βρεθεί στη γραμμή. Για παράδειγμα, για να αντικαταστήσετε τη λέξη ένα με ένα αν η λέξη πορτοκάλι υπάρχει στη γραμμή:

sed -e '/ πορτοκαλί / s / a / an / g' textfile.txt

Η έκδοση της παραπάνω εντολής θα εμφανίσει:

Αυτό είναι ένα αρχείο κειμένου επίδειξης.
Είναι ένα σούπερ αρχείο που θα μας βοηθήσει όλους.
Το βοηθητικό πρόγραμμα sed είναι επίσης ιδανικό για επεξεργασία ροής.
Θέλετε να μάθετε πώς να χρησιμοποιείτε το βοηθητικό πρόγραμμα;
Αυτή είναι μια άλλη γραμμή στο αρχείο.
Αυτή είναι η τρίτη γενική γραμμή στο αρχείο.
Αυτό το αρχείο ονομάζεται textfile.
Αυτό είναι ένα μήλο.
Αυτό είναι ένα πορτοκάλι.

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

8. Αντικαταστήστε λέξεις που χρησιμοποιούν κανονικές εκφράσεις

Για όσους ξέρουν να χρησιμοποιούν κανονικές εκφράσεις, η εκτέλεση λειτουργιών σε χορδές χρησιμοποιώντας την εντολή sed γίνεται πολύ πιο εύκολη. Μπορείτε να εφαρμόσετε κανονικές εκφράσεις για να βελτιώσετε την ισχύ της εντολής.

Για να αντικαταστήσετε όλες τις εμφανίσεις της λέξης Φοβερο ή φοβερο με σούπερ:

sed -e 's / [Aa] mazing / super / g' textfile.txt

Ομοίως, μπορείτε επίσης να χρησιμοποιήσετε σύνθετες τυπικές εκφράσεις για να εκτελέσετε συγκεκριμένες λειτουργίες χρησιμοποιώντας την εντολή sed.

9. Σωλήνας με άλλες εντολές

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

lspci | sed G

Για να αντικαταστήσετε συγκεκριμένες λέξεις στην έξοδο του εμφάνιση διαδρομής ip εντολή:

εμφάνιση διαδρομής ip | sed s / src / πηγή / g

Η προαναφερθείσα εντολή αντικαθιστά τη λέξη πηγή στη θέση της αρχικής λέξης src.

Σχετιζομαι με: Πώς να χρησιμοποιήσετε την εντολή Εύρεση για αναζήτηση αρχείων στο Linux

10. Επεξεργασία και δημιουργία αντιγράφων ασφαλείας του αρχικού αρχείου

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

Για να δημιουργήσετε αντίγραφα ασφαλείας του αρχικού αρχείου χρησιμοποιώντας sed, χρησιμοποιήστε το -Εγώ σημαία στην εντολή.

sed -i'.backup 's / amazing / super / g' textfile.txt

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

δημιουργία αντιγράφων ασφαλείας textfile.txt textfile.txt.backup

Επεξεργασία συμβολοσειρών στο Linux με sed

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

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

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
7 τρόποι λήψης βοήθειας γραμμής εντολών στο Linux

Όλες οι βασικές εντολές για την εκμάθηση των εντολών Linux από τη γραμμή εντολών

Διαβάστε Επόμενο

Σχετικά θέματα
  • Linux
  • Επεξεργαστής κειμένου
  • Τερματικό
  • Γραμμή εντολών
Σχετικά με τον Συγγραφέα
Deepesh Sharma (Δημοσιεύθηκαν 36 άρθρα)

Ο Deepesh είναι ο Junior Editor για Linux στο MUO. Γράφει ενημερωτικό περιεχόμενο στο Διαδίκτυο για πάνω από 3 χρόνια. Στον ελεύθερο χρόνο του, του αρέσει να γράφει, να ακούει μουσική και να παίζει κιθάρα.

Περισσότερα από τον Deepesh Sharma

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.