Kaip pakeisti „Bash“ failo eilutę

How Replace String File Bash



Kaip programuotojui gali tekti dirbti su įvairių tipų failais, kad laikinai ar visam laikui būtų saugomi duomenys. Kartais gali tekti pakeisti dalį failo arba pakeisti tam tikrą failo turinį. Norėdami pakeisti failo turinį, turite ieškoti konkrečios failo eilutės. The bet komanda naudojama pakeisti bet kurią failo eilutę naudojant „bash“ scenarijų. Ši komanda gali būti naudojama įvairiais būdais, norint pakeisti „bash“ failo turinį. The 'Oho “Komanda taip pat gali būti naudojama norint pakeisti failo eilutę. Ši pamoka parodys, kaip pakeisti bet kurią eilutės reikšmę iš failo naudojant „bash“ scenarijų. Teksto failas pavadintas Pardavimas.txt sukurtas toks turinys, kad būtų parodytos pakeitimo operacijos.

Pardavimas.txt







Data Kiekis Plotas

2020-01-01 60000 Daka
2020 10 02 76000 Rajshahi
2020 03 21 54000 Khulna
2020-04-15 78000 Čandpuras
2020 05 17 45000 Bogra
2020-06-02 67000 „Comilla“

Pakeiskite failo eilutę komanda „sed“

Pagrindinė „“ sintaksė sed `komanda, skirta pakeisti tam tikrą failo eilutę, pateikta žemiau.



Sintaksė



sed -i 's/search_string/change_string/'failo pavadinimas

Kiekviena aukščiau pateiktos sintaksės dalis paaiškinta žemiau.





„-I“ parinktis naudojama modifikuoti pradinio failo turinį pakeičiama eilute, jei faile yra paieškos eilutė.

„S“ nurodo pakaitinę komandą.



„Search_string“ yra eilutės reikšmė, kurios bus ieškoma pakeistame faile.

„Pakeisti eilutę“ yra eilutės reikšmė, kuri bus naudojama norint pakeisti failo turinį, atitinkantį „Search_string“ vertės.

'failo pavadinimas' yra failo pavadinimas, kuriame bus taikoma paieška ir pakeitimas.

1 pavyzdys: pakeiskite failą komanda „sed“

Šiame scenarijuje paieškos ir pakeitimo tekstas bus paimtas iš vartotojo. Jei paieškos eilutė yra „Sales.txt“, ji bus pakeista pakeitimo eilute. Čia bus atlikta didžiųjų ir mažųjų raidžių paieška.

#!/bin/bash

# Priskirkite failo pavadinimą
failo pavadinimas=„Sales.txt“

# Paimkite paieškos eilutę
skaityti -p 'Įveskite paieškos eilutę:'Paieška

# Paimkite pakeitimo eilutę
skaityti -p 'Įveskite pakeitimo eilutę:'pakeisti

jei [[ $ paieška !='' && $ pakeisti !='' ]];tada
sed -i /$ paieška/$ pakeisti/ ' $ failo pavadinimas
būti

Išvestis

2 pavyzdys: pakeiskite failą komanda „sed“ su „g“ ir „i“ vėliava

Šis scenarijus veiks kaip ir ankstesnis pavyzdys, tačiau paieškos eilutės bus ieškoma visame pasaulyje „g“ vėliavos, o didžiosios ir mažosios raidės nebus ieškomos „i“ vėliavos.

#!/bin/bash

# Paimkite paieškos eilutę
skaityti -p 'Įveskite paieškos eilutę:'Paieška

# Paimkite pakeitimo eilutę
skaityti -p 'Įveskite pakeitimo eilutę:'pakeisti

jei [[ $ paieška !='' && $ pakeisti !='' ]];tada
sed -i /$ paieška/$ pakeisti/duok ' 1 USD
būti

Išvestis

3 pavyzdys: pakeiskite failą komanda „sed“ ir atitinkančiu skaitmenų šablonu

Šis scenarijus ieškos viso skaitmeninio turinio faile ir pakeis turinį pridėdamas „$“ simbolis skaičių pradžioje.

#!/bin/bash

# Patikrinkite, ar komandinės eilutės argumento vertė yra, ar ne
jei [ 1 USD !='' ];tada
# Ieškokite visose eilutėse, kuriose yra skaitmenų, ir pridėkite $
sed -i „s/ b [0-9] {5 } b/$ &/g“ 1 USD
būti

Išvestis

Failo eilutę pakeiskite komanda „awk“

awk ' komanda yra dar vienas būdas pakeisti failo eilutę, tačiau ši komanda negali atnaujinti pradinio failo tiesiogiai kaip „ bet komandą.

4 pavyzdys: pakeiskite failą komanda „awk“

Šis scenarijus išsaugos atnaujintą turinį temp.txt failas, kuris bus pervadintas pirminiu failu.

#!/bin/bash

# Patikrinkite, ar komandinės eilutės argumento vertė yra, ar ne
jei [ 1 USD !='' ];tada
# Ieškokite visose eilutėse pagal datą
awk '{sub (' 2020-02-02 ',' 2020-06-12 ')} 1' 1 USD >temp.txt&& mvtemp.txt1 USD
būti

Išvestis

Išvada

Šis straipsnis parodė, kaip naudoti „bash“ scenarijus tam tikroms failo eilutėms pakeisti. Praktikavus aukščiau pateiktus pavyzdžius, užduotis pakeisti failo eilutę jums turėtų tapti lengvesnė.