Hogyan lehet kicserélni egy karakterláncot a Bash fájlban

How Replace String File Bash



Programozóként előfordulhat, hogy különböző típusú fájlokkal kell dolgoznia az adatok ideiglenes vagy végleges tárolásához. Néha szükség lehet a fájl egy részének cseréjére vagy a fájl adott tartalmának módosítására. A fájl tartalmának cseréjéhez meg kell keresnie az adott fájl karakterláncát. Az de parancs a fájl bármely karakterláncának cseréjére szolgál bash parancsfájl használatával. Ez a parancs különféle módon használható a bash fájl tartalmának cseréjére. Az 'Jaj ’Parancs használható a fájlban lévő karakterlánc cseréjére is. Ez az oktatóanyag megmutatja, hogyan lehet lecserélni egy karakterlánc értékét egy fájlból bash parancsfájl használatával. Egy szöveges fájl nevű Sales.txt a következő tartalommal hozza létre a csereműveleteket.

Sales.txt







Dátum Összeg Terület

2020.01.01. 60000 Dhaka
2020.02.10. 76000 Rajshahi
2020.03.21. 54000 Khulna
2020.04.15. 78000 Chandpur
2020.05.17. 45000 Bogra
2020.06.02 67000 Comilla

Cserélje le a karakterláncot egy fájlban az `sed` paranccsal

A `alapvető szintaxisa sed `parancs az adott karakterlánc kicserélésére a fájlban az alábbiakban található.



Szintaxis



sed -én 's/search_string/substit_string/'fájl név

A fenti szintaxis minden részét az alábbiakban ismertetjük.





'-én' opció az eredeti fájl tartalmának módosítására szolgál, ha a keresési karakterlánc létezik a fájlban.

'S' a helyettesítő parancsot jelzi.



'Search_string' a karakterlánc értékét tartalmazza, amelyet a fájlban keresni kell a csere érdekében.

'Cserelánc' a karakterlánc értékét tartalmazza, amely a fájlnak megfelelő tartalom helyettesítésére szolgál 'Search_string' érték.

'fájl név' tartalmazza azt a fájlnevet, ahol a keresést és a cserét alkalmazzák.

1. példa: Cserélje le a fájlt a „sed” paranccsal

A következő szkriptben a keresés és csere szöveg a felhasználótól származik. Ha a keresési karakterlánc létezik a „Sales.txt” fájlban, akkor azt a helyettesítő karakterlánc fogja helyettesíteni. Itt kis- és nagybetűket megkülönböztető keresést hajt végre.

#!/bin/bash

# Rendelje hozzá a fájlnevet
fájl név='Sales.txt'

# Vegye ki a keresési karakterláncot
olvas -p 'Írja be a keresési karakterláncot:'keresés

# Vegye ki a csere karakterláncot
olvas -p 'Írja be a csere karakterláncát:'cserélje ki

ha [[ $ keresés !='' && $ csere !='' ]];azután
sed -én /$ keresés/$ csere/ ' $ fájlnév
lenni

Kimenet

2. példa: Cserélje le a fájlt a „sed” paranccsal „g” és „i” zászlóra

A következő szkript az előző példához hasonlóan fog működni, de a keresési karakterláncban globálisan keresi a „g” zászlót, és a kis- és nagybetűk megkülönböztetés nélküli keresést az „i” jelzőre.

#!/bin/bash

# Vegye ki a keresési karakterláncot
olvas -p 'Írja be a keresési karakterláncot:'keresés

# Vegye ki a csere karakterláncot
olvas -p 'Írja be a csere karakterláncát:'cserélje ki

ha [[ $ keresés !='' && $ csere !='' ]];azután
sed -én /$ keresés/$ csere/adni' $ 1
lenni

Kimenet

3. példa: Cserélje le a fájlt „sed” paranccsal és egyező számjegymintával

A következő szkript megkeresi a fájl összes numerikus tartalmát, és a tartalmat a '$' szimbólum a számok elején.

#!/bin/bash

# Ellenőrizze, hogy a parancssori argumentum értéke létezik -e vagy sem
ha [ $ 1 !='' ];azután
# Keresse meg az összes számjegyeket tartalmazó karakterláncot, és adjon hozzá $ -ot
sed -én 's/ b [0-9] {5 } b/$ &/g' $ 1
lenni

Kimenet

Cserélje le a karakterláncot egy fájlban az `awk` paranccsal

Az ' awk ' parancs egy másik módja a karakterlánc cseréjének egy fájlban, de ez a parancs nem tudja közvetlenül frissíteni az eredeti fájlt, mint a de parancs.

4. példa: Cserélje le a fájlt az „awk” paranccsal

A következő szkript a frissített tartalmat a temp.txt fájl, amelyet az eredeti fájl átnevez.

#!/bin/bash

# Ellenőrizze, hogy a parancssori argumentum értéke létezik -e vagy sem
ha [ $ 1 !='' ];azután
# Keresés az összes karakterláncban a dátum alapján
awk '{sub (' 2020.02.02., '2020.06.12.)} 1' $ 1 >temp.txt&& mvtemp.txt$ 1
lenni

Kimenet

Következtetés

Ez a cikk bemutatta, hogyan használhatja a bash parancsfájlokat egy adott karakterlánc cseréjére. A fenti példák gyakorlása után könnyebbé kell tennie a fájlban lévő karakterlánc cseréjét.