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.