Sales.txt
Datum Belopp Område
01/01/2020 2020 60000 Dhaka
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
Ersätt sträng i en fil med kommandot 'sed'
Den grundläggande syntaxen för ` sed `kommando för att ersätta den specifika strängen i en fil ges nedan.
Syntax
sed -i 's/search_string/replace_string/'filnamn
Varje del av ovanstående syntax förklaras nedan.
'-I' alternativet används för att ändra innehållet i originalfilen med ersättningssträngen om söksträngen finns i filen.
'S' anger ersättningskommandot.
'Search_string' innehåller strängvärdet som ska sökas i filen efter ersättning.
'Ersätt_sträng' innehåller strängvärdet som ska användas för att ersätta innehållet i filen som matchar 'Search_string' värde.
'filnamn' innehåller filnamnet där sökningen och ersättningen kommer att tillämpas.
Exempel 1: Ersätt fil med kommandot 'sed'
I följande skript tas sök-och-ersätt-texten från användaren. Om söksträngen finns i 'Sales.txt' kommer den att ersättas av ersättningssträngen. Här kommer en skiftlägeskänslig sökning att utföras.
#!/bin/bash# Tilldela filnamnet
filnamn='Sales.txt'
# Ta söksträngen
läsa -s 'Ange söksträngen:'Sök
# Ta ersättningssträngen
läsa -s 'Ange ersättningssträngen:'byta ut
om [[ $ sökning !='' && $ ersätt !='' ]];sedan
sed -i s/$ sökning/$ ersätt/ ' $ filnamn
vara
Produktion
Exempel 2: Ersätt fil med kommandot 'sed' med 'g' och 'i' flagga
Följande skript fungerar som det föregående exemplet, men söksträngen kommer att sökas globalt efter 'g' -flaggan och den skiftlägeskänsliga sökningen görs efter 'i' -flaggan.
#!/bin/bash# Ta söksträngen
läsa -s 'Ange söksträngen:'Sök
# Ta ersättningssträngen
läsa -s 'Ange ersättningssträngen:'byta ut
om [[ $ sökning !='' && $ ersätt !='' ]];sedan
sed -i s/$ sökning/$ ersätt/ge' $ 1
vara
Produktion
Exempel 3: Ersätt fil med 'sed' kommando och matchande sifframönster
Följande skript söker efter allt numeriskt innehåll i en fil och ersätter innehållet genom att lägga till '$' symbolen i början av siffrorna.
#!/bin/bash# Kontrollera att kommandoradsargumentets värde finns eller inte
om [ $ 1 !='' ];sedan
# Sök igenom alla strängar som innehåller siffror och lägg till $
sed -i 's/ b [0-9] {5 } b/$ &/g' $ 1
vara
Produktion
Ersätt sträng i en fil med kommandot 'awk'
Den ‘ oj ' kommando är ett annat sätt att ersätta strängen i en fil, men det här kommandot kan inte uppdatera den ursprungliga filen direkt som ' men kommando.
Exempel 4: Ersätt fil med kommandot ‘awk’
Följande skript lagrar det uppdaterade innehållet i temp.txt fil som kommer att byta namn på den ursprungliga filen.
#!/bin/bash# Kontrollera att kommandoradsargumentets värde finns eller inte
om [ $ 1 !='' ];sedan
# Sök i alla strängar baserat på datum
ock '{sub ('02/06/2020', '12/06/2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
vara
Produktion
Slutsats
Den här artikeln visade dig hur du använder bash -skript för att ersätta vissa strängar i en fil. Uppgiften att ersätta en sträng i en fil bör bli lättare för dig efter att ha övat på ovanstående exempel.