Kako zamenjati niz v datoteki v Bashu

How Replace String File Bash



Kot programer boste morda morali začasno ali trajno shraniti podatke z različnimi vrstami datotek. Včasih boste morda morali zamenjati del datoteke ali spremeniti določeno vsebino datoteke. Če želite zamenjati vsebino v datoteki, morate poiskati določen niz datotek. The ampak ukaz se uporablja za zamenjavo katerega koli niza v datoteki z uporabo bash skripta. Ta ukaz lahko uporabite na različne načine za zamenjavo vsebine datoteke v bash. The 'Awk ’Ukaz lahko uporabite tudi za zamenjavo niza v datoteki. Ta vadnica vam bo pokazala, kako zamenjati katero koli vrednost niza iz datoteke z uporabo bash skripta. Besedilna datoteka z imenom Sales.txt z naslednjo vsebino je ustvarjena za prikaz nadomestnih operacij.

Sales.txt







Območje zneska datuma

01.01.2020 60000 Daka
10.2.2020 76000 Rajshahi
21.3.2020 54000 Khulna
15.4.2020 78000 Chandpur
17.5.2020 45000 Bogra
02.06.2020 67000 Comilla

Zamenjajte niz v datoteki z ukazom `sed`

Osnovna skladnja datoteke ` sed `ukaz za zamenjavo določenega niza v datoteki je spodaj.



Sintaksa



sed -jaz 's/search_string/replace_string/'Ime datoteke

Spodaj je razložen vsak del zgornje sintakse.





'-jaz' možnost se uporablja za spreminjanje vsebine izvirne datoteke z nadomestnim nizom, če iskalni niz obstaja v datoteki.

'S' označuje ukaz nadomestilo.



'Iskalni niz' vsebuje vrednost niza, ki bo v datoteki iskana za zamenjavo.

'Replace_string' vsebuje vrednost niza, ki bo uporabljena za zamenjavo vsebine datoteke, ki se ujema z datoteko 'Iskalni niz' vrednost.

'Ime datoteke' vsebuje ime datoteke, kjer bo uporabljeno iskanje in zamenjava.

Primer 1: Datoteko zamenjajte z ukazom 'sed'

V naslednjem skriptu bo besedilo za iskanje in zamenjavo vzeto od uporabnika. Če iskalni niz obstaja v »Sales.txt«, ga bo nadomestil nadomestni niz. Tu bo izvedeno iskanje glede na velike in male črke.

#!/bin/bash

# Dodelite ime datoteke
Ime datoteke='Sales.txt'

# Vzemite iskalni niz
prebrati -str 'Vnesite iskalni niz:'Iskanje

# Vzemite nadomestni niz
prebrati -str 'Vnesite nadomestni niz:'zamenjati

če [[ $ iskanje !='' && $ zamenjaj !='' ]];potem
sed -jaz 's/$ iskanje/$ zamenjaj/ ' $ ime datoteke
biti

Izhod

Primer 2: Datoteko zamenjajte z ukazom 'sed' z zastavicama 'g' in 'i'

Naslednji skript bo deloval podobno kot prejšnji primer, vendar bo iskalni niz po vsem svetu iskal zastavo 'g', za zastavico 'i' pa bo iskanje odvisno od malih in velikih črk.

#!/bin/bash

# Vzemite iskalni niz
prebrati -str 'Vnesite iskalni niz:'Iskanje

# Vzemite nadomestni niz
prebrati -str 'Vnesite nadomestni niz:'zamenjati

če [[ $ iskanje !='' && $ zamenjaj !='' ]];potem
sed -jaz 's/$ iskanje/$ zamenjaj/daj ' 1 USD
biti

Izhod

Primer 3: Datoteko zamenjajte z ukazom 'sed' in ujemajočim se številskim vzorcem

Naslednji skript bo iskal vso numerično vsebino v datoteki in bo vsebino nadomestil z dodajanjem datoteke '$' simbol na začetku številk.

#!/bin/bash

# Preverite, ali vrednost argumenta ukazne vrstice obstaja ali ne
če [ 1 USD !='' ];potem
# Poiščite ves niz, ki vsebuje številke, in dodajte $
sed -jaz 's/ b [0-9] {5 } b/$ &/g' 1 USD
biti

Izhod

Zamenjaj niz v datoteki z ukazom awk

The ‘ awk ' ukaz je še en način za zamenjavo niza v datoteki, vendar ta ukaz ne more posodobiti izvirne datoteke neposredno, kot je » ampak ukaz.

Primer 4: Datoteko zamenjajte z ukazom 'awk'

Naslednji skript bo posodobljeno vsebino shranil v temp.txt datoteko, ki jo bo preimenovala izvirna datoteka.

#!/bin/bash

# Preverite, ali vrednost argumenta ukazne vrstice obstaja ali ne
če [ 1 USD !='' ];potem
# Iščite po vseh nizih glede na datum
awk '{sub ('02/06/2020', '12/06/2020')} 1 ' 1 USD >temp.txt&& mvtemp.txt1 USD
biti

Izhod

Zaključek

Ta članek vam je pokazal, kako uporabite bash skripte za zamenjavo določenih nizov v datoteki. Naloga zamenjave niza v datoteki bi vam morala po ogledu zgornjih primerov postati lažja.