Sales.txt
Data Àrea Import
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
Substitueix la cadena en un fitxer per l'ordre `sed`
La sintaxi bàsica del fitxer ` sed A continuació es mostra l'ordre `per substituir la cadena particular d'un fitxer.
Sintaxi
sed -i 's / search_string / replace_string /'nom de l'arxiu
Totes les parts de la sintaxi anterior s’expliquen a continuació.
'-I' l'opció s'utilitza per modificar el contingut del fitxer original amb la cadena de reemplaçament si la cadena de cerca existeix al fitxer.
'S' indica l'ordre substitut.
'Search_string' conté el valor de cadena que es cercarà al fitxer per substituir-lo.
'Reemplaça_corda' conté el valor de la cadena que s'utilitzarà per substituir el contingut del fitxer que coincideix amb el fitxer 'Search_string' valor.
'nom de l'arxiu' conté el nom de fitxer on s'aplicaran les cerques i substitucions.
Exemple 1: substituïu el fitxer per l'ordre 'sed'
En el següent script, el text de cerca i substitució es prendrà de l'usuari. Si la cadena de cerca existeix a 'Sales.txt', se substituirà per la cadena de substitució. Aquí es realitzarà una cerca sensible a majúscules i minúscules.
#! / bin / bash# Assigneu el nom del fitxer
nom de l'arxiu='Sales.txt'
# Agafeu la cadena de cerca
llegir -p 'Introduïu la cadena de cerca:'cerca
# Agafeu la cadena de substitució
llegir -p 'Introduïu la cadena de substitució:'substituir
si [[ $ cerca !='' && $ reemplaça !='' ]];llavors
sed -i 's /$ cerca/$ reemplaça/ ' $ nom de fitxer
ser
Sortida
Exemple 2: substituïu el fitxer per l'ordre 'sed' per les marques 'g' i 'i'
El següent script funcionarà com l’exemple anterior, però la cadena de cerca es buscarà globalment per al senyalador ‘g’ i la cerca que no distingeix entre majúscules i minúscules es farà per al senyal ‘i’.
#! / bin / bash# Agafeu la cadena de cerca
llegir -p 'Introduïu la cadena de cerca:'cerca
# Agafeu la cadena de substitució
llegir -p 'Introduïu la cadena de substitució:'substituir
si [[ $ cerca !='' && $ reemplaça !='' ]];llavors
sed -i 's /$ cerca/$ reemplaça/ donar ' $ 1
ser
Sortida
Exemple 3: substituïu el fitxer per ordre 'sed' i patró de dígits coincidents
El següent script cercarà tot el contingut numèric en un fitxer i substituirà el contingut afegint el fitxer '$' símbol al començament dels números.
#! / bin / bash# Comproveu que el valor de l'argument de línia d'ordres existeix o no
si [ $ 1 !='' ];llavors
# Cerqueu totes les cadenes que contenen dígits i afegiu $
sed -i 's / b [0-9] {5 } b / $ & / g' $ 1
ser
Sortida
Substitueix la cadena en un fitxer per l'ordre 'awk'
El ‘ awk ’ és una altra manera de substituir la cadena d’un fitxer, però aquesta ordre no pot actualitzar el fitxer original directament com però comandament.
Exemple 4: substituïu el fitxer per l'ordre 'awk'
El següent script emmagatzemarà el contingut actualitzat a temp.txt fitxer que canviarà el nom pel fitxer original.
#! / bin / bash# Comproveu que el valor de l'argument de línia d'ordres existeix o no
si [ $ 1 !='' ];llavors
# Cerqueu totes les cadenes segons la data
awk '{sub ('02 / 06/2020', '12/06/2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
ser
Sortida
Conclusió
Aquest article us mostra com utilitzar scripts bash per substituir cadenes concretes d'un fitxer. La tasca de substituir una cadena en un fitxer us hauria de ser més fàcil després de practicar els exemples anteriors.