Πώς να αντικαταστήσετε μια συμβολοσειρά σε ένα αρχείο στο Bash

How Replace String File Bash



Ως προγραμματιστής, μπορεί να χρειαστεί να εργαστείτε με διαφορετικούς τύπους αρχείων για να αποθηκεύσετε δεδομένα προσωρινά ή μόνιμα. Μερικές φορές, μπορεί να χρειαστεί να αντικαταστήσετε μέρος του αρχείου ή να τροποποιήσετε το συγκεκριμένο περιεχόμενο του αρχείου. Για να αντικαταστήσετε περιεχόμενο σε ένα αρχείο, πρέπει να αναζητήσετε τη συγκεκριμένη συμβολοσειρά αρχείου. ο αλλά Η εντολή χρησιμοποιείται για την αντικατάσταση οποιασδήποτε συμβολοσειράς σε ένα αρχείο χρησιμοποιώντας ένα σενάριο bash. Αυτή η εντολή μπορεί να χρησιμοποιηθεί με διάφορους τρόπους για να αντικαταστήσει το περιεχόμενο ενός αρχείου σε bash. ο ‘Ακ Η εντολή ’μπορεί επίσης να χρησιμοποιηθεί για την αντικατάσταση της συμβολοσειράς σε ένα αρχείο. Αυτό το σεμινάριο θα σας δείξει πώς να αντικαταστήσετε οποιαδήποτε τιμή συμβολοσειράς από ένα αρχείο χρησιμοποιώντας ένα σενάριο bash. Ένα αρχείο κειμένου με όνομα Sales.txt με το ακόλουθο περιεχόμενο δημιουργείται για να εμφανίζει τις λειτουργίες αντικατάστασης.

Sales.txt







Ημερομηνία Ποσότητα Περιοχή

01/01/2020 60000 Ντάκα
10/02/2020 76000 Rajshahi
21/03/2020 54000 Χούλνα
15/04/2020 78000 Τσαντπούρ
17/05/2020 45000 Bogra
02/06/2020 67000 Comilla

Αντικαταστήστε τη συμβολοσειρά σε ένα αρχείο με την εντολή `sed`

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



Σύνταξη



sed -Εγώ 's/search_string/install_string/'όνομα αρχείου

Κάθε μέρος της παραπάνω σύνταξης εξηγείται παρακάτω.





'-Εγώ' Η επιλογή χρησιμοποιείται για την τροποποίηση του περιεχομένου του αρχικού αρχείου με τη συμβολοσειρά αντικατάστασης εάν η συμβολοσειρά αναζήτησης υπάρχει στο αρχείο.

'μικρό' υποδεικνύει την εντολή υποκατάστατου.



'String_ search' περιέχει την τιμή συμβολοσειράς που θα αναζητηθεί στο αρχείο για αντικατάσταση.

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

'όνομα αρχείου' περιέχει το όνομα αρχείου όπου θα εφαρμοστεί η αναζήτηση και η αντικατάσταση.

Παράδειγμα 1: Αντικαταστήστε το αρχείο με την εντολή ‘sed’

Στο παρακάτω σενάριο, το κείμενο αναζήτησης και αντικατάστασης θα αφαιρεθεί από τον χρήστη. Εάν η συμβολοσειρά αναζήτησης υπάρχει στο ‘Sales.txt’, τότε θα αντικατασταθεί από τη συμβολοσειρά αντικατάστασης. Εδώ, θα πραγματοποιηθεί αναζήτηση με διάκριση πεζών-κεφαλαίων.

#!/bin/bash

# Εκχώρηση ονόματος αρχείου
όνομα αρχείου='Sales.txt'

# Πάρτε τη συμβολοσειρά αναζήτησης
ανάγνωση 'Εισαγάγετε τη συμβολοσειρά αναζήτησης:'Αναζήτηση

# Πάρτε τη συμβολοσειρά αντικατάστασης
ανάγνωση 'Εισαγάγετε τη συμβολοσειρά αντικατάστασης:'αντικαθιστώ

αν [[ $ αναζήτηση !='' && $ αντικατάσταση !='' ]]?τότε
sed -Εγώ 'μικρό/$ αναζήτηση/$ αντικατάσταση/ ' $ όνομα αρχείου
είναι

Παραγωγή

Παράδειγμα 2: Αντικαταστήστε το αρχείο με την εντολή 'sed' με 'g' και 'i' Flag

Το ακόλουθο σενάριο θα λειτουργήσει όπως το προηγούμενο παράδειγμα, αλλά η συμβολοσειρά αναζήτησης θα αναζητηθεί σε παγκόσμιο επίπεδο για τη σημαία 'g' και η ανεύρεση πεζών-κεφαλαίων θα γίνει για τη σημαία 'i'.

#!/bin/bash

# Πάρτε τη συμβολοσειρά αναζήτησης
ανάγνωση 'Εισαγάγετε τη συμβολοσειρά αναζήτησης:'Αναζήτηση

# Πάρτε τη συμβολοσειρά αντικατάστασης
ανάγνωση 'Εισαγάγετε τη συμβολοσειρά αντικατάστασης:'αντικαθιστώ

αν [[ $ αναζήτηση !='' && $ αντικατάσταση !='' ]]?τότε
sed -Εγώ 'μικρό/$ αναζήτηση/$ αντικατάσταση/δίνω' $ 1
είναι

Παραγωγή

Παράδειγμα 3: Αντικαταστήστε το αρχείο με το «sed» Command and Matching Digit Pattern

Το παρακάτω σενάριο θα αναζητήσει όλο το αριθμητικό περιεχόμενο σε ένα αρχείο και θα αντικαταστήσει το περιεχόμενο προσθέτοντας το '$' σύμβολο στην αρχή των αριθμών.

#!/bin/bash

# Ελέγξτε αν υπάρχει ή όχι η τιμή του ορίσματος της γραμμής εντολών
αν [ $ 1 !='' ]?τότε
# Αναζήτηση σε όλες τις συμβολοσειρές που περιέχουν ψηφία και προσθήκη $
sed -Εγώ 's/ b [0-9] {5 } b/$ &/g' $ 1
είναι

Παραγωγή

Αντικαταστήστε τη συμβολοσειρά σε ένα αρχείο με την εντολή `awk`

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

Παράδειγμα 4: Αντικατάσταση αρχείου με εντολή ‘awk’

Το παρακάτω σενάριο θα αποθηκεύσει το ενημερωμένο περιεχόμενο στο temp.txt αρχείο που θα μετονομαστεί από το αρχικό αρχείο.

#!/bin/bash

# Ελέγξτε αν υπάρχει ή όχι η τιμή του ορίσματος της γραμμής εντολών
αν [ $ 1 !='' ]?τότε
# Αναζήτηση όλων των συμβολοσειρών με βάση την ημερομηνία
awk '{υπο ('02/06/2020', '12/06/2020')} 1 ' $ 1 >>temp.txt&& mvtemp.txt$ 1
είναι

Παραγωγή

συμπέρασμα

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