Πώς να αντικαταστήσετε τη νέα γραμμή με κόμμα χρησιμοποιώντας την εντολή `sed`

How Replace Newline With Comma Using Sed Command



Οποιοσδήποτε χαρακτήρας ή συμβολοσειρά μπορεί να αντικατασταθεί χρησιμοποιώντας την εντολή `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 με ένα κόμμα.