Kuidas asendada string Bashi failis

How Replace String File Bash

Programmeerijana peate andmete ajutiseks või püsivaks salvestamiseks töötama erinevat tüüpi failidega. Mõnikord peate võib -olla osa failist asendama või faili konkreetset sisu muutma. Faili sisu asendamiseks peate otsima konkreetse failistringi. The aga käsku kasutatakse failis oleva stringi asendamiseks bash -skripti abil. Seda käsku saab kasutada bash -faili sisu asendamiseks mitmel viisil. The 'Awk 'Käsku saab kasutada ka faili stringi asendamiseks. See õpetus näitab teile, kuidas asendada failist stringi väärtus bash -skripti abil. Tekstifail nimega Müük.txt asendustoimingute kuvamiseks luuakse järgmise sisuga sisu.

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.