Paano Palitan ang isang String sa isang File sa Bash

How Replace String File Bash



Bilang isang programmer, maaaring kailanganin mong gumana sa iba't ibang mga uri ng mga file upang pansamantala o permanenteng mag-imbak ng data. Minsan, maaaring kailanganin mong palitan ang bahagi ng file o baguhin ang partikular na nilalaman ng file. Upang mapalitan ang nilalaman sa isang file, dapat kang maghanap para sa partikular na file string. Ang pero ginagamit ang utos upang palitan ang anumang string sa isang file gamit ang isang bash script. Ang utos na ito ay maaaring magamit sa iba't ibang mga paraan upang mapalitan ang nilalaman ng isang file sa bash. Ang ‘Awk Maaari ding magamit ang command ’upang mapalitan ang string sa isang file. Ipapakita sa iyo ng tutorial na ito kung paano palitan ang anumang halaga ng string mula sa isang file gamit ang isang bash script. Pinangalanang isang file ng teksto Sales.txt kasama ang sumusunod na nilalaman ay nilikha upang ipakita ang mga pagpapatakbo ng kapalit.

Sales.txt







Petsa ng Halaga ng Halaga

01/01/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

Palitan ang String sa isang File gamit ang `sed` Command

Ang pangunahing syntax ng ` sed Ang `utos para sa pagpapalit ng partikular na string sa isang file ay ibinigay sa ibaba.



Syntax



sed -ako 's / search_string / replacement_string /'filename

Ang bawat bahagi ng syntax sa itaas ay ipinaliwanag sa ibaba.





'-I' Ginagamit ang pagpipilian upang baguhin ang nilalaman ng orihinal na file na may kapalit na string kung mayroon ang string ng paghahanap sa file.

‘S ay nagpapahiwatig ng kapalit na utos.



'Search_string' naglalaman ng halaga ng string na hahanapin sa file para sa kapalit.

'Replacement_string' naglalaman ng halaga ng string na gagamitin upang mapalitan ang nilalaman ng file na tumutugma sa 'Search_string' halaga

'Filename' naglalaman ng filename kung saan ilalapat ang paghahanap at kapalit.

Halimbawa 1: Palitan ang File ng 'sed' Command

Sa sumusunod na script, ang teksto ng paghahanap at palitan ay kukuha mula sa gumagamit. Kung ang string ng paghahanap ay mayroon sa 'Sales.txt', pagkatapos ay papalitan ito ng kapalit na string. Dito, isasagawa ang isang case-sensitive na paghahanap.

#! / baseng / bash

# Italaga ang filename
filename='Sales.txt'

# Kunin ang string ng paghahanap
basahin -p 'Ipasok ang string ng paghahanap:'maghanap

# Kunin ang tali ng palitan
basahin -p 'Ipasok ang palitan ng string:'palitan

kung [[ $ paghahanap !=' && $ palitan !=' ]];tapos
sed -ako 's /$ paghahanap/$ palitan/ ' $ filename
maging

Paglabas

Halimbawa 2: Palitan ang File ng 'sed' Command ng 'g' at 'i' Flag

Ang sumusunod na script ay gagana tulad ng nakaraang halimbawa, ngunit ang string ng paghahanap ay hahanapin sa buong mundo para sa flag na ‘g’, at gagawin ang case-insensitive na paghahanap para sa flag na ‘i’.

#! / baseng / bash

# Kunin ang string ng paghahanap
basahin -p 'Ipasok ang string ng paghahanap:'maghanap

# Kunin ang tali ng palitan
basahin -p 'Ipasok ang palitan ng string:'palitan

kung [[ $ paghahanap !=' && $ palitan !=' ]];tapos
sed -ako 's /$ paghahanap/$ palitan/ ibigay ' $ 1
maging

Paglabas

Halimbawa 3: Palitan ang File ng 'sed' Command at Matching Digit pattern

Ang sumusunod na script ay maghanap para sa lahat ng nilalaman na may bilang sa isang file at papalitan ang nilalaman sa pamamagitan ng pagdaragdag ng '$' simbolo sa simula ng mga numero.

#! / baseng / bash

# Suriin ang halaga ng argumento ng linya ng utos na mayroon o hindi
kung [ $ 1 !=' ];tapos
# Maghanap sa lahat ng string na naglalaman ng mga digit at magdagdag ng $
sed -ako 's / b [0-9] {5 } b / $ & / g' $ 1
maging

Paglabas

Palitan ang String sa isang File ng `awk` Command

Ang ‘ awk ’ Ang utos ay isa pang paraan upang mapalitan ang string sa isang file, ngunit ang utos na ito ay hindi maaaring ma-update ang orihinal na file nang direkta tulad ng ' pero utos

Halimbawa 4: Palitan ang File ng 'awk' Command

Itatago ng sumusunod na script ang na-update na nilalaman sa temp.txt file na papalitan ng pangalan ng orihinal na file.

#! / baseng / bash

# Suriin ang halaga ng argumento ng linya ng utos na mayroon o hindi
kung [ $ 1 !=' ];tapos
# Maghanap sa lahat ng string batay sa petsa
ang awkward '{sub ('02 / 06/2020', '12/06/2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
maging

Paglabas

Konklusyon

Ipinakita sa iyo ng artikulong ito kung paano gumamit ng mga script ng bash upang mapalitan ang mga partikular na string sa isang file. Ang gawain upang palitan ang isang string sa isang file ay dapat na maging madali para sa iyo pagkatapos ng pagsasanay ng mga halimbawa sa itaas.