Kā nomainīt virkni failā Bash

How Replace String File Bash



Kā programmētājam, iespējams, būs jāstrādā ar dažāda veida failiem, lai uz laiku vai pastāvīgi saglabātu datus. Dažreiz jums var būt nepieciešams nomainīt daļu faila vai mainīt konkrētu faila saturu. Lai aizstātu faila saturu, jums ir jāmeklē konkrētā faila virkne. The bet komandu izmanto, lai aizstātu jebkuru virkni failā, izmantojot bash skriptu. Šo komandu var izmantot dažādos veidos, lai aizstātu bash faila saturu. The 'Ak! Komandu var izmantot arī, lai aizstātu virkni failā. Šī apmācība parādīs, kā aizstāt jebkuru virknes vērtību no faila, izmantojot bash skriptu. Teksta fails ar nosaukumu Pārdošana.txt ar šādu saturu ir izveidots, lai parādītu nomaiņas darbības.

Pārdošana.txt







Datums Summas apgabals

01.01.2020 60000 Daka
20.02.2020 76000 Rajshahi
21.03.2020 54000 Khulna
2020. gada 15. aprīlis 78000 Čandpura
2020.05.17. 45000 Bogra
06.02.2020 67000 Comilla

Aizstājiet virkni failā ar komandu 'sed'

Pamata sintakse ' sed `komanda, lai aizstātu konkrēto virkni failā, ir dota zemāk.



Sintakse



sed -i 's/search_string/substit_string/'faila nosaukums

Tālāk ir izskaidrota katra iepriekš minētās sintakses daļa.





“-I” opcija tiek izmantota, lai modificētu sākotnējā faila saturu ar aizstāšanas virkni, ja failā ir meklēšanas virkne.

“S” norāda aizvietotāja komandu.



“Search_string” satur virknes vērtību, kas tiks meklēta failā, lai to aizstātu.

“Aizstāt_virkni” satur virknes vērtību, kas tiks izmantota, lai aizstātu faila saturu, kas atbilst “Search_string” vērtību.

'faila nosaukums' satur faila nosaukumu, kurā tiks izmantota meklēšana un aizstāšana.

1. piemērs: aizstājiet failu ar komandu “sed”

Nākamajā skriptā meklēšanas un aizstāšanas teksts tiks ņemts no lietotāja. Ja meklēšanas virkne pastāv failā “Sales.txt”, tā tiks aizstāta ar aizstāšanas virkni. Šeit tiks veikta meklēšana, reģistrjutīga.

#!/bin/bash

# Piešķiriet faila nosaukumu
faila nosaukums=“Sales.txt”

# Paņemiet meklēšanas virkni
lasīt -lpp 'Ievadiet meklēšanas virkni:'Meklēt

# Paņemiet aizvietošanas virkni
lasīt -lpp 'Ievadiet aizstāšanas virkni:'aizvietot

ja [[ $ meklēšana !='' && $ aizstāt !='' ]];tad
sed -i s/$ meklēšana/$ aizstāt/ ' $ faila nosaukums
būt

Izeja

2. piemērs: aizstājiet failu ar komandu “sed” ar “g” un “i” karodziņu

Šis skripts darbosies tāpat kā iepriekšējais piemērs, taču meklēšanas virkne tiks meklēta globāli, lai atrastu karodziņu “g”, un, reģistrjutīgo meklēšanu, tiks veikta karodziņš “i”.

#!/bin/bash

# Paņemiet meklēšanas virkni
lasīt -lpp 'Ievadiet meklēšanas virkni:'Meklēt

# Paņemiet aizvietošanas virkni
lasīt -lpp 'Ievadiet aizstāšanas virkni:'aizvietot

ja [[ $ meklēšana !='' && $ aizstāt !='' ]];tad
sed -i s/$ meklēšana/$ aizstāt/dot' $ 1
būt

Izeja

3. piemērs: aizstājiet failu ar komandu “sed” un atbilstošu ciparu modeli

Šis skripts meklēs visu skaitlisko saturu failā un aizstās saturu, pievienojot “$” simbols skaitļu sākumā.

#!/bin/bash

# Pārbaudiet, vai komandrindas argumenta vērtība pastāv vai nav
ja [ $ 1 !='' ];tad
# Meklējiet visu virkni, kas satur ciparus, un pievienojiet $
sed -i 's/ b [0-9] {5 } b/$ &/g' $ 1
būt

Izeja

Aizstājiet virkni failā ar komandu 'awk'

awk ' komanda ir vēl viens veids, kā aizstāt virkni failā, taču šī komanda nevar atjaunināt sākotnējo failu tieši tāpat kā “ bet komandu.

4. piemērs: aizstājiet failu ar komandu “awk”

Šis skripts atjaunināto saturu saglabās mapē temp.txt fails, kas tiks pārdēvēts par sākotnējo failu.

#!/bin/bash

# Pārbaudiet, vai komandrindas argumenta vērtība pastāv vai nav
ja [ $ 1 !='' ];tad
# Meklējiet visas virknes, pamatojoties uz datumu
awk '{sub ('02/06/2020', '12.06.2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
būt

Izeja

Secinājums

Šis raksts parādīja, kā izmantot bash skriptus, lai aizstātu noteiktas faila virknes. Uzdevumam aizstāt virkni failā vajadzētu kļūt vieglākam pēc iepriekš minēto piemēru izmantošanas.