Sales.txt
Päivämäärä Määräalue
01/01/2020 60000 Dhaka
2.10.2020 76000 Rajshahi
21.3.2020 54000 Khulna
15.4.2020 78000 Chandpur
17.5.2020 45000 Bogra
06.02.2020 67000 Comilla
Korvaa tiedoston merkkijono komennolla `sed '
Perussyntaksi ` sed `` komento tiedoston jonon korvaamiseksi on annettu alla.
Syntaksi
sed -i 's/search_string/substit_string/'Tiedoston nimi
Jokainen yllä olevan syntaksin osa selitetään alla.
'-I' -vaihtoehtoa käytetään alkuperäisen tiedoston sisällön muuttamiseen korvaavalla merkkijonolla, jos hakusana on tiedostossa.
'S' tarkoittaa korvaavaa komentoa.
'Search_string' sisältää merkkijonon arvon, jota etsitään tiedostosta vaihdettavaksi.
'Korvata merkkijono' sisältää merkkijonon arvon, jota käytetään korvaamaan tiedoston sisältö, joka vastaa 'Search_string' arvo.
'Tiedoston nimi' sisältää tiedostonimen, jossa hakua ja korvausta käytetään.
Esimerkki 1: Korvaa tiedosto komennolla 'sed'
Seuraavassa komentosarjassa haku ja korvaa -teksti otetaan käyttäjältä. Jos hakumerkkijono on olemassa Sales.txt -tiedostossa, se korvataan korvaavalla merkkijonolla. Tässä tehdään kirjainkoolla merkitsevä haku.
#!/bin/bash# Anna tiedostonimi
Tiedoston nimi='Sales.txt'
# Ota hakusana
lukea -p 'Kirjoita hakusana:'Hae
# Ota korvaava merkkijono
lukea -p 'Kirjoita korvaava merkkijono:'korvata
jos [[ $ haku !='' && $ korvata !='' ]];sitten
sed -i 's/$ haku/$ korvata/ ' $ tiedostonimi
olla
Lähtö
Esimerkki 2: Korvaa tiedosto komennolla 'sed' komennolla 'g' ja 'i'
Seuraava skripti toimii kuten edellinen esimerkki, mutta hakumerkkijonosta etsitään maailmanlaajuisesti 'g' -lippua ja kirjainkoolla ei merkitystä 'i' -lipulle.
#!/bin/bash# Ota hakusana
lukea -p 'Kirjoita hakusana:'Hae
# Ota korvaava merkkijono
lukea -p 'Kirjoita korvaava merkkijono:'korvata
jos [[ $ haku !='' && $ korvata !='' ]];sitten
sed -i 's/$ haku/$ korvata/antaa' $ 1
olla
Lähtö
Esimerkki 3: Korvaa tiedosto komennolla 'sed' ja vastaava numero
Seuraava skripti etsii tiedoston numeerista sisältöä ja korvaa sen lisäämällä '$' symboli numeroiden alussa.
#!/bin/bash# Tarkista, onko komentoriviargumentin arvo olemassa vai ei
jos [ $ 1 !='' ];sitten
# Hae kaikista numeroita sisältävistä merkkijonoista ja lisää $
sed -i 's/ b [0-9] {5 } b/$ &/g' $ 1
olla
Lähtö
Korvaa tiedoston merkkijono komennolla `awk`
' awk ' komento on toinen tapa korvata tiedoston merkkijono, mutta tämä komento ei voi päivittää alkuperäistä tiedostoa suoraan ' mutta komento.
Esimerkki 4: Korvaa tiedosto komennolla 'awk'
Seuraava skripti tallentaa päivitetyn sisällön temp.txt tiedosto, jonka nimi muutetaan alkuperäiseksi.
#!/bin/bash# Tarkista, onko komentoriviargumentin arvo olemassa vai ei
jos [ $ 1 !='' ];sitten
# Hae kaikista merkkijonoista päivämäärän perusteella
awk '{sub ('02/06/2020', '12.6.2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
olla
Lähtö
Johtopäätös
Tässä artikkelissa kerrottiin, kuinka voit käyttää bash -komentosarjoja tiettyjen merkkijonojen korvaamiseen tiedostossa. Tiedoston merkkijonon korvaamisen pitäisi olla helpompaa, kun olet harjoitellut yllä olevia esimerkkejä.