Kako zamijeniti niz u datoteci u Bashu

How Replace String File Bash



Kao programer, možda ćete morati raditi s različitim vrstama datoteka za privremeno ili trajno pohranjivanje podataka. Ponekad ćete možda morati zamijeniti dio datoteke ili izmijeniti određeni sadržaj datoteke. Da biste zamijenili sadržaj u datoteci, morate potražiti određeni niz datoteke. The ali naredba se koristi za zamjenu bilo kojeg niza u datoteci pomoću bash skripte. Ova se naredba može koristiti na različite načine za zamjenu sadržaja datoteke u bashu. The ‘Awk ’Naredba se također može koristiti za zamjenu niza u datoteci. Ovaj vodič će vam pokazati kako zamijeniti bilo koju vrijednost niza iz datoteke pomoću bash skripte. Tekstualna datoteka s imenom Sales.txt sa sljedećim sadržajem izrađen je za prikaz operacija zamjene.

Sales.txt







Područje iznosa datuma

01.01.2020. 60000 Daka
10.02.2020 76000 Rajshahi
21/03/2020 54000 Khulna
15/04/2020 78000 Chandpur
17/05/2020 45000 Bogra
02.06.2020 67000 Comilla

Zamijenite niz u datoteci naredbom `sed`

Osnovna sintaksa datoteke ` sed `naredba za zamjenu određenog niza u datoteci data je u nastavku.



Sintaksa



sed -i 's/search_string/replace_string/'naziv datoteke

Svaki dio gornje sintakse objašnjen je u nastavku.





'-I' opcija se koristi za izmjenu sadržaja izvorne datoteke zamjenskim nizom ako niz za pretraživanje postoji u datoteci.

‘S’ označava zamjensku naredbu.



'Niz_pretraživanja' sadrži vrijednost niza koja će se u datoteci pretraživati ​​radi zamjene.

'String_ zamjene' sadrži vrijednost niza koja će se koristiti za zamjenu sadržaja datoteke koja odgovara 'Niz_pretraživanja' vrijednost.

'naziv datoteke' sadrži naziv datoteke na koju će se primijeniti pretraživanje i zamjena.

Primjer 1: Zamijenite datoteku naredbom ‘sed’

U sljedećoj skripti tekst za pretraživanje i zamjenu bit će preuzet od korisnika. Ako niz za pretraživanje postoji u 'Sales.txt', bit će zamijenjen zamjenskim nizom. Ovdje će se izvršiti pretraživanje osjetljivo na velika i mala slova.

#!/bin/bash

# Dodijelite naziv datoteci
naziv datoteke='Sales.txt'

# Uzmite niz za pretraživanje
čitati -str 'Unesite niz za pretraživanje:'traži

# Uzmite zamjenski niz
čitati -str 'Unesite zamjenski niz:'zamijeniti

ako [[ $ search !='' && $ zamijeniti !='' ]];zatim
sed -i 's/$ search/$ zamijeniti/ ' $ naziv datoteke
biti

Izlaz

Primjer 2: Zamijenite datoteku naredbom ‘sed’ sa zastavicom ‘g’ i ‘i’

Sljedeća skripta funkcionirat će poput prethodnog primjera, ali će se niz za pretraživanje globalno pretraživati ​​za oznaku 'g', a za oznaku 'i' bit će izvršeno pretraživanje bez obzira na velika i mala slova.

#!/bin/bash

# Uzmite niz za pretraživanje
čitati -str 'Unesite niz za pretraživanje:'traži

# Uzmite zamjenski niz
čitati -str 'Unesite zamjenski niz:'zamijeniti

ako [[ $ search !='' && $ zamijeniti !='' ]];zatim
sed -i 's/$ search/$ zamijeniti/dati' 1 USD
biti

Izlaz

Primjer 3: Zamijenite datoteku naredbom ‘sed’ i odgovarajućim uzorkom znamenki

Sljedeća skripta će tražiti sav numerički sadržaj u datoteci i zamijenit će sadržaj dodavanjem datoteke '$' simbol na početku brojeva.

#!/bin/bash

# Provjerite postoji li vrijednost argumenta naredbenog retka
ako [ 1 USD !='' ];zatim
# Pretražite sve nizove koji sadrže znamenke i dodajte $
sed -i 's/ b [0-9] {5 } b/$ &/g' 1 USD
biti

Izlaz

Zamijenite niz u datoteci naredbom `awk`

awk ' naredba je još jedan način zamjene niza u datoteci, ali ova naredba ne može ažurirati izvornu datoteku izravno poput datoteke ‘ ali naredba.

Primjer 4: Zamijenite datoteku naredbom 'awk'

Sljedeća skripta pohranit će ažurirani sadržaj u temp.txt datoteku koja će biti preimenovana izvornom datotekom.

#!/bin/bash

# Provjerite postoji li vrijednost argumenta naredbenog retka
ako [ 1 USD !='' ];zatim
# Pretražite sve nizove na temelju datuma
awk '{sub ('02/06/2020', '12/06/2020')} 1 ' 1 USD >temp.txt&& mvtemp.txt1 USD
biti

Izlaz

Zaključak

Ovaj članak vam je pokazao kako koristiti bash skripte za zamjenu određenih nizova u datoteci. Zadatak zamjene niza u datoteci trebao bi vam postati lakši nakon vježbanja gornjih primjera.