Ako nahradiť reťazec v súbore v Bash

How Replace String File Bash



Ako programátor budete možno musieť pracovať s rôznymi typmi súborov na dočasné alebo trvalé ukladanie údajov. Niekedy môže byť potrebné nahradiť časť súboru alebo upraviť konkrétny obsah súboru. Ak chcete nahradiť obsah v súbore, musíte vyhľadať konkrétny reťazec súboru. The ale príkaz sa používa na nahradenie ľubovoľného reťazca v súbore pomocou skriptu bash. Tento príkaz je možné použiť rôznymi spôsobmi na nahradenie obsahu súboru v bash. The „Awk Príkaz '' je možné použiť aj na nahradenie reťazca v súbore. Tento tutoriál vám ukáže, ako nahradiť akúkoľvek hodnotu reťazca zo súboru pomocou skriptu bash. Textový súbor s názvom Predaj.txt s nasledujúcim obsahom je vytvorený na zobrazenie operácií výmeny.

Predaj.txt







Oblasť čiastky dátumu

1. 1. 2020 60 000 Dháky
10.02.2020 76000 Rádžshahi
21.03.2020 54 000 Khulna
15.04.2020 78000 Chandpur
17.05.2020 45 000 Bogra
06.02.2020 67000 Comilla

Nahraďte reťazec v súbore príkazom `sed`

Základná syntax jazyka ` sed `príkaz na nahradenie konkrétneho reťazca v súbore je uvedený nižšie.



Syntax



sed -i 's/reťazec vyhľadávania/reťazec nahradenia/'názov súboru

Každá časť vyššie uvedenej syntaxe je vysvetlená nižšie.





'-I' možnosť sa používa na úpravu obsahu pôvodného súboru pomocou náhradného reťazca, ak v súbore existuje vyhľadávací reťazec.

'S' označuje náhradný príkaz.



„Reťazec vyhľadávania“ obsahuje hodnotu reťazca, ktorá sa bude hľadať v súbore na nahradenie.

'Replace_string' obsahuje hodnotu reťazca, ktorá sa použije na nahradenie obsahu súboru, ktorý sa zhoduje s príponou 'Search_string' hodnotu.

'názov súboru' obsahuje názov súboru, kde sa použije vyhľadávanie a nahradenie.

Príklad 1: Nahraďte súbor príkazom „sed“

V nasledujúcom skripte bude text hľadaný a nahradený prevzatý od používateľa. Ak hľadaný reťazec existuje v súbore „Sales.txt“, bude nahradený náhradným reťazcom. Tu sa vykoná vyhľadávanie rozlišujúce malé a veľké písmená.

#!/bin/bash

# Priraďte názov súboru
názov súboru=„Sales.txt“

# Vezmite vyhľadávací reťazec
čítať -p 'Zadajte hľadaný reťazec:'Vyhľadávanie

# Vezmite náhradný reťazec
čítať -p „Zadajte reťazec nahradenia:“vymeniť

keby [[ $ hľadať !='' && $ nahradiť !='' ]];potom
sed -i 's/$ hľadať/$ nahradiť/ ' $ názov súboru
byť

Výkon

Príklad 2: Nahraďte súbor príkazom „sed“ príznakom „g“ a „i“

Nasledujúci skript bude fungovať ako predchádzajúci príklad, ale vo vyhľadávacom reťazci sa bude globálne hľadať príznak „g“ a pre príznak „i“ sa nerozlišujú malé a veľké písmena.

#!/bin/bash

# Vezmite vyhľadávací reťazec
čítať -p 'Zadajte hľadaný reťazec:'Vyhľadávanie

# Vezmite náhradný reťazec
čítať -p „Zadajte reťazec nahradenia:“vymeniť

keby [[ $ hľadať !='' && $ nahradiť !='' ]];potom
sed -i 's/$ hľadať/$ nahradiť/dať ' 1 dolár
byť

Výkon

Príklad 3: Nahraďte súbor príkazom „sed“ a vzorom zodpovedajúcich číslic

Nasledujúci skript vyhľadá všetok numerický obsah v súbore a nahradí obsah pridaním prípony '$' symbol na začiatku číslic.

#!/bin/bash

# Skontrolujte, či hodnota argumentu príkazového riadka existuje alebo nie
keby [ 1 dolár !='' ];potom
# Vyhľadajte všetky reťazce obsahujúce číslice a pridajte $
sed -i 's/ b [0-9] {5 } b/$ &/g' 1 dolár
byť

Výkon

Nahraďte reťazec v súbore príkazom `awk`

awk ' príkaz je ďalším spôsobom, ako nahradiť reťazec v súbore, ale tento príkaz nemôže aktualizovať pôvodný súbor priamo ako „ ale príkaz.

Príklad 4: Nahraďte súbor príkazom „awk“

Nasledujúci skript uloží aktualizovaný obsah do súboru temp.txt súbor, ktorý bude premenovaný na pôvodný súbor.

#!/bin/bash

# Skontrolujte, či hodnota argumentu príkazového riadka existuje alebo nie
keby [ 1 dolár !='' ];potom
# Vyhľadajte všetky reťazce podľa dátumu
awk „{sub ('02/06/2020 ',' 12/06/2020 ')} 1' 1 dolár >temp.txt&& mvtemp.txt1 dolár
byť

Výkon

Záver

Tento článok vám ukázal, ako použiť bash skripty na nahradenie konkrétnych reťazcov v súbore. Úloha nahradiť reťazec v súbore by vám mala byť po precvičení vyššie uvedených príkladov jednoduchšia.