Οποιοσδήποτε χαρακτήρας ή συμβολοσειρά μπορεί να αντικατασταθεί χρησιμοποιώντας την εντολή `sed`. Μερικές φορές, πρέπει να αντικαταστήσουμε τον χαρακτήρα newline ( n) σε ένα αρχείο με κόμμα. Σε αυτό το άρθρο, χρησιμοποιούμε την εντολή `sed` για να αντικαταστήσουμε το n με ένα κόμμα.
Χρησιμοποιώντας το `sed` για να αντικαταστήσετε n με κόμμα
Πολλά προβλήματα μπορεί να προκύψουν κατά την αντικατάσταση του n με κόμμα. Από προεπιλογή, κάθε γραμμή τελειώνει με n κατά τη δημιουργία ενός αρχείου. Η εντολή `sed` μπορεί εύκολα να χωριστεί σε n και να αντικαταστήσει τη νέα γραμμή με οποιονδήποτε χαρακτήρα. Ένας άλλος οριοθέτης μπορεί να χρησιμοποιηθεί στη θέση n, αλλά μόνο όταν χρησιμοποιείται το GNU sed. Όταν λείπει το n στην τελευταία γραμμή του αρχείου, το GNU sed μπορεί να αποφύγει την εκτύπωση n. Επιπλέον, n προστίθεται συνήθως σε κάθε διαδοχική έξοδο του `sed`.
Δημιουργήστε ένα αρχείο
Σε αυτό το άρθρο, θα σας δείξουμε πώς να χρησιμοποιήσετε την εντολή `sed` για να αντικαταστήσετε n με κόμμα. Για να ακολουθήσετε αυτό το σεμινάριο, δημιουργήστε ένα αρχείο κειμένου με όνομα Clients.txt με τις ακόλουθες πληροφορίες πίνακα πελατών.
ταυτότητα | Ονομα | ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ | Τηλέφωνο |
---|---|---|---|
c01 | Md. Ρακίμπ | [προστασία ηλεκτρονικού ταχυδρομείου] | 01856233238 |
c02 | Meher Afroze | [προστασία ηλεκτρονικού ταχυδρομείου] | 01733536342 |
c03 | Φακρούλ Αχσάν | [προστασία ηλεκτρονικού ταχυδρομείου] | 01934737248 |
c04 | Χελάλ Ουντίν | [προστασία ηλεκτρονικού ταχυδρομείου] | 01534895898 |
c05 | Νουσράτ Τζαχάν | [προστασία ηλεκτρονικού ταχυδρομείου] | 01866345254 |
Παράδειγμα 1: Αντικαταστήστε το n με κόμμα χρησιμοποιώντας -z
Η επιλογή -z χρησιμοποιείται για τη μετατροπή n σε μηδενικό χαρακτήρα ( 0). Το περιεχόμενο του αρχείου αντιμετωπίζεται ως μία μόνο γραμμή εάν δεν περιέχει μηδενικούς χαρακτήρες. Η εντολή `sed` θα μετατρέψει τη νέα γραμμή σε μηδενικό χαρακτήρα και θα αντικαταστήσει κάθε n με κόμμα χρησιμοποιώντας το πρώτο μοτίβο αναζήτησης και αντικατάστασης. Εδώ, το ‘g’ χρησιμοποιείται για παγκόσμια αναζήτηση n. Με το δεύτερο μοτίβο αναζήτησης και αντικατάστασης, το τελευταίο κόμμα θα αντικατασταθεί με n.
$ΓάταClients.txt
$sed -Με 's/ n/,/g; s/, $/ n/'Clients.txt
Η ακόλουθη έξοδος θα παραχθεί μετά την εκτέλεση των εντολών.
Παράδειγμα 2: Αντικαταστήστε το n με κόμμα χρησιμοποιώντας a, b, $! και Ν
Η εντολή `sed` μπορεί να χρησιμοποιηθεί για να αντικαταστήσει n με κόμμα χρησιμοποιώντας a, b, N και $! Το Εδώ, προς το χρησιμοποιείται για την προσθήκη εργασιών, σι χρησιμοποιείται για διακλάδωση του περιεχομένου, Ν χρησιμοποιείται για μετάβαση στην επόμενη γραμμή και $! χρησιμοποιείται για να αποτρέψει την εφαρμογή της εργασίας αντικατάστασης στην τελευταία γραμμή. Η εντολή θα αντικαταστήσει το καθένα n με κόμμα εκτός από την τελευταία γραμμή.
$ΓάταClients.txt
$sed ': a; N; $! ba; s/ n/,/g'Clients.txt
Η ακόλουθη έξοδος θα παραχθεί μετά την εκτέλεση των εντολών.
Παράδειγμα 3: Αντικαταστήστε το n με κόμμα χρησιμοποιώντας τα H, h, d, x και y
Αν θέλετε να αντικαταστήσετε n) με ένα κόμμα σε ένα μικρό αρχείο, τότε μπορεί να χρησιμοποιηθεί η ακόλουθη εντολή `sed`. Εδώ, Η χρησιμοποιείται για την προσθήκη της τελευταίας γραμμής στο κείμενο συγκράτησης, 1h χρησιμοποιείται για την αντιγραφή κάθε γραμμής του αρχείου στο κείμενο συγκράτησης από την πρώτη γραμμή, $! δ χρησιμοποιείται για τη διαγραφή όλων των γραμμών εκτός από την τελευταία γραμμή, Χ χρησιμοποιείται για την ανταλλαγή του χώρου κειμένου και μοτίβου, και και χρησιμοποιείται για την αντικατάσταση του καθενός n στο κείμενο κράτησης με κόμμα.
$ΓάταClients.txt$sed 'H; 1h; $! D; x; y/ n/,/'Clients.txt
Η ακόλουθη έξοδος θα παραχθεί μετά την εκτέλεση των εντολών.
Παράδειγμα 4: Αντικαταστήστε το n με κόμμα χρησιμοποιώντας -n, H, h, g και p
Η εντολή `sed` μπορεί να χρησιμοποιηθεί για αντικατάσταση n με κόμμα με -ν επιλογή, η οποία εμποδίζει την αυτόματη εκτύπωση. Όπως και στο προηγούμενο παράδειγμα, Η χρησιμοποιείται εδώ για να προσθέσει την τελευταία γραμμή στο κείμενο που περιέχει, 1 ώρα χρησιμοποιείται για την αντιγραφή κάθε γραμμής του αρχείου στο κείμενο που περιέχει, $ αναφέρεται στην τελευταία γραμμή του αρχείου, σολ χρησιμοποιείται για αντιγραφή από το κείμενο κράτησης, και Π χρησιμοποιείται για εκτύπωση.
$ΓάταClients.txt$sed-ν«Η; 1 ώρα · ${g; s / n/,/g; p} 'Clients.txt
Η ακόλουθη έξοδος θα παραχθεί μετά την εκτέλεση των παραπάνω εντολών.
Παράδειγμα 5: Αντικαταστήστε το n με κόμμα χρησιμοποιώντας H, x, p
Η, χ και ρ έχουν εξηγηθεί σε προηγούμενα παραδείγματα. Η πρώτη έκφραση αναζήτησης και αντικατάστασης θα αντικαταστήσει το καθένα n με ένα κόμμα, και η δεύτερη αναζήτηση και αντικατάσταση της έκφρασης θα αντικαταστήσει ένα κόμμα στην αρχή μιας γραμμής με ένα κενό.
$ΓάταClients.txt$sed-ν'H; $ {x; s/ n/,/g; s/^, //; p;}'Clients.txt
Η ακόλουθη έξοδος θα παραχθεί μετά την εκτέλεση των παραπάνω εντολών.
Παράδειγμα 6: Αντικαταστήστε το n με κόμμα χρησιμοποιώντας τα Ν και `γάτα`
Η εντολή `cat` χρησιμοποιείται εδώ για να στείλει το περιεχόμενο του αρχείου στην εντολή` sed` και Ν χρησιμοποιείται για μετάβαση στην επόμενη γραμμή.
$ΓάταClients.txt$ΓάταClients.txt| sed 'N; s/ n/,/'
Η ακόλουθη έξοδος θα παραχθεί μετά την εκτέλεση των παραπάνω εντολών.
συμπέρασμα
Μπορεί να χρειαστεί να αντικαταστήσετε το n με κόμμα για τη μεταφορά δεδομένων από τη μια μορφή αρχείου στην άλλη. Αυτός ο τύπος αντικατάστασης μπορεί επίσης να γίνει χρησιμοποιώντας άλλες εντολές Linux. Πολλές επιλογές εντολών, όπως H, N, h και x, μπορούν να χρησιμοποιηθούν με την εντολή `sed` για την ολοκλήρωση αυτής της εργασίας. Αυτό το σεμινάριο περιγράφει διάφορους τρόπους για να χρησιμοποιήσετε την εντολή `sed` για να αντικαταστήσετε το n με ένα κόμμα.