Müük.txt
Kuupäev Kogus
01.01.2020 60000 Dhaka
02.10.2020 76000 Rajshahi
21.03.2020 54000 Khulna
15.04.2020 78000 Chandpur
17.05.2020 45000 Bogra
06.02.2020 67000 Comilla
Asendage failis olev string käsuga „sed“
Põhisüntaks ' sed Käsk faili konkreetse stringi asendamiseks on toodud allpool.
Süntaks
sed -mina 's/search_string/Replace_string/'faili nimi
Allpool selgitatakse kõiki ülaltoodud süntaksi osi.
'-I' suvandit kasutatakse algse faili sisu muutmiseks asendustringiga, kui otsingusõna on failis olemas.
'S' tähistab asenduskäsklust.
„Otsingustring“ sisaldab stringi väärtust, mida failist asendamiseks otsitakse.
„Asenda_string” sisaldab stringi väärtust, mida kasutatakse faili sisu asendamiseks, mis vastab „Otsingustring“ väärtus.
'faili nimi' sisaldab failinime, kus otsingut ja asendamist rakendatakse.
Näide 1: asendage fail käsuga „sed”
Järgmises skriptis võetakse otsingu- ja asendustekst kasutajalt. Kui otsingustring on failis „Sales.txt” olemas, asendatakse see asendusstringiga. Siin viiakse läbi tõstutundlik otsing.
#!/bin/bash# Määrake failinimi
faili nimi=„Müük.txt”
# Võtke otsingustring
loe -lk 'Sisestage otsingustring:'otsing
# Võtke asendusnöör
loe -lk 'Sisesta asendusstring:'asendada
kui [[ $ otsing !='' && $ asendada !='' ]];siis
sed -mina 's/$ otsing/$ asendada/ ' $ failinimi
olla
Väljund
Näide 2: Asendage fail käsuga „sed” ja märgendiga „g” ja „i”
Järgmine skript töötab nagu eelmine näide, kuid otsingustringist otsitakse globaalselt lippu „g” ja suurtähtede vahet ei otsita märgi „i” puhul.
#!/bin/bash# Võtke otsingustring
loe -lk 'Sisestage otsingustring:'otsing
# Võtke asendusnöör
loe -lk 'Sisesta asendusstring:'asendada
kui [[ $ otsing !='' && $ asendada !='' ]];siis
sed -mina 's/$ otsing/$ asendada/anna ' $ 1
olla
Väljund
Näide 3: asendage fail käsuga „sed” ja sobiva numbrimustriga
Järgmine skript otsib failist kogu numbrilist sisu ja asendab selle, lisades '$' sümbol numbrite alguses.
#!/bin/bash# Kontrollige, kas käsurea argumendi väärtus on olemas või mitte
kui [ $ 1 !='' ];siis
# Otsige kõiki numbreid sisaldavaid stringe ja lisage $
sed -mina 's/ b [0-9] {5 } b/$ &/g' $ 1
olla
Väljund
Asendage failis olev string käsuga `awk`
„ awk ' käsk on veel üks viis stringi asendamiseks failis, kuid see käsk ei saa algfaili värskendada otse nagu ' aga käsk.
Näide 4: asendage fail käsuga „awk”
Järgmine skript salvestab värskendatud sisu kausta temp.txt fail, mille algne fail nimetab ümber.
#!/bin/bash# Kontrollige, kas käsurea argumendi väärtus on olemas või mitte
kui [ $ 1 !='' ];siis
# Otsige kuupäeva alusel kõiki stringe
awk '{sub ('02/06/2020', '12.06.2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
olla
Väljund
Järeldus
See artikkel näitas teile, kuidas kasutada bash -skripte faili teatud stringide asendamiseks. Pärast ülaltoodud näidete harjutamist peaks failis oleva stringi asendamise ülesanne muutuma lihtsamaks.