Sed: Εκμάθηση δέσμης ενεργειών Shell χρησιμοποιώντας την εντολή Terminal Terminal

Sed: Εκμάθηση δέσμης ενεργειών Shell χρησιμοποιώντας την εντολή Terminal Terminal

Sed: Εκμάθηση δέσμης ενεργειών Shell χρησιμοποιώντας την εντολή Terminal Terminal

Η εντολή "sed" στα Ελεύθερα Λειτουργικά Συστήματα τύπου GNU / Linux είναι μια πολύ ευέλικτη εντολή, από τη σειρά της Θεωρείται ένα πρόγραμμα επεξεργασίας κειμένου προσανατολισμένο στη «ροή» αντί για «διαδραστικό» ως τυπικό, δεδομένου ότι δέχεται ένα αρχείο ή μια τυπική είσοδο ως είσοδο, τότε επεξεργάζεται κάθε γραμμή και το αποτέλεσμα αποστέλλεται στην τυπική έξοδο. Δηλαδή, Το SED (Stream Editor) μας επιτρέπει να τροποποιήσουμε το περιεχόμενο των διαφόρων γραμμών ενός αρχείου βάσει μιας σειράς εντολών ή ενός αρχείου εντολών.

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

Εισαγωγή στην εντολή "sed"

Ήδη σε άλλες προηγούμενες δημοσιεύσεις στο DesdeLinux έχουμε μιλήσει και δείξουμε παραδείγματα σχετικά με τη χρήση της εν λόγω εντολής, όπως: Πώς να διαγράψετε συγκεκριμένες γραμμές από ένα αρχείο ... y Με τερματικό: Χρήση κανονικών εκφράσεων II: Αντικαταστάσεις, λοιπόν αυτή τη φορά θα δούμε άμεσα λίγο πιο προηγμένα και εξίσου πρακτικά παραδείγματα που το χρησιμοποιούν.

Βασικά η εντολή "sed" έχει την ακόλουθη σύνταξη:

sed comandos_sed archivo

Όπου "Command_sed" αντιστοιχεί σε μία ή περισσότερες προδιαγραφές σχετικά με το τι να κάνετε με τις γραμμές από τις οποίες διαβάζετε "αρχείο".

Μια πιο εκτεταμένη χρήση μας αφήνει με την ακόλουθη σύνταξη:

sed [-ns] '[direccion] instruccion argumentos'

Πού:

Μορφή χρήσης εντολών SED

Πρακτικά παραδείγματα

Λίστα αρχείων / φακέλων σε μια διαδρομή

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

ls -l | awk '{ print $NF }' | sed 1d

Παράδειγμα:

Παράδειγμα 1: Εντολή SED - Shell Scripting

Αυτή η άλλη παραλλαγή που χρησιμοποιεί την εντολή "sed" είναι πολύ χρήσιμη:

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Παράδειγμα 4: Εντολή SED για Shell Scripting

Δημιουργήστε μια ακολουθία αριθμών

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

seq 100|tr '\n' ' '|sed 's, $,\n,g'

Παράδειγμα 2: Εντολή SED για Shell Scripting

Το ίδιο παράδειγμα μπορεί να γίνει συνδυάζοντας την εντολή «δίψα" με "Printf" όπως φαίνεται παρακάτω:

printf '%s ' {1..100}|sed 's/ $/\n/'

Παράδειγμα 3: Εντολή SED για Shell Scripting

Διαγράψτε αρχεία με εξαιρέσεις

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

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Παράδειγμα 5: Εντολή SED για Shell_Scripting

Δημιουργήστε μια εικονική διεύθυνση MAC

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

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί χρησιμοποιώντας την εντολή "sed" σε συνδυασμό με άλλες εντολές, όπως φαίνεται παρακάτω:

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1

Παράδειγμα:

Παράδειγμα 7: Εντολή SED για Shell Scripting

Αλλάξτε προσωρινά τη γραμμή εντολών

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

export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Παράδειγμα 8. Εντολή SED για Shell Scripting

Διαχειριστείτε την έξοδο της εντολής "ps"

Πολύ πρακτική εντολή εντολής που επιτρέπει τη μορφοποίηση της εξόδου της εντολής «ps», δηλαδή αυτό που λαμβάνεται από το Terminal Process Manager.

sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"

Παράδειγμα:

Παράδειγμα 9: Εντολή SED για Shell Scripting

Αυτό μπορεί να εφαρμοστεί για διαδικασίες σύμφωνα με το ποσοστό της μνήμης που καταναλώνεται:

sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"

Ελπίζω ότι αυτά τα παραδείγματα γραμμής εντολών που χρησιμοποιούν την εντολή "sed" θα είναι πολύ χρήσιμα. Και χρησιμεύουν για χρήση απευθείας από την κονσόλα ή έμμεσα με την εισαγωγή τους σε ένα σενάριο (αυτοματοποιημένη εργασία).

Στην επόμενη ανάρτηση στο Shell Scripting θα διερευνήσουμε άλλες εντολές.

Αν θέλετε να μάθετε περισσότερα για την εντολή "sed" επισκεφτείτε αυτόν τον σύνδεσμο "Οδηγός και σύντομος οδηγός για το Unix και το Linux"Ή"Βασική χρήση»Και αν θέλετε να μάθετε περισσότερα για το Shell Scripting στο δικό μας Blog, μπορείτε να ρίξετε μια ματιά στις άλλες δημοσιεύσεις μας για το θέμα κάνοντας κλικ εδώ: Σενάριο DesdeLinux.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.