sed solo reemplaza el primer golpe consecutivo

 

Por ejemplo, el contenido en abcd.txt es el siguiente:

[root @ i-B56C455B DMS] # más abcd.txt 
aba1
a B C D
acad
[root @ i-B56C455B DMS] # 

Ahora reemplace todo a con e: use [/ g]

[root @ i-B56C455B DMS] # sed -i 's / a / e / g' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
lugar1
ebcd
eced
[root @ i-B56C455B DMS] # 

Ahora solo reemplace la primera aparición de e en cada línea como a: remove [/ g]

[root @ i-B56C455B DMS] # sed -i 's / e / a /' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
ABE1
a B C D
Aced
[root @ i-B56C455B DMS] # 

Realícelo nuevamente y reemplace e con un:

[root @ i-B56C455B DMS] # sed -i 's / e / a /' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
aba1
a B C D
acad
[root @ i-B56C455B DMS] # 

Ahora se implementa para reemplazar solo uno a la vez: use [0, / content to be replace / s / content to replace / replace content /], y solo reemplace el primer a en la primera línea como e

[root @ i-B56C455B DMS] # sed -i '0, / a / s / a / e /' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
eba1
a B C D
acad
[root @ i-B56C455B DMS] # 

Ahora volviendo al contenido original:

[root @ i-B56C455B DMS] # más abcd.txt 
aba1
a B C D
acad
[root @ i-B56C455B DMS] # 

Para reemplazar todo a en la primera línea con e, combinado con lo anterior, solo necesita agregar el parámetro / g:

[root @ i-B56C455B DMS] # sed -i '0, / a / s / a / e / g' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
lugar1
a B C D
acad
[root @ i-B56C455B DMS] # 

De acuerdo, ¿qué pasa si quieres reemplazar dos líneas cada vez? Luego cambie 0, / a 1,

[root @ i-B56C455B DMS] # más abcd.txt 
aba1
siglo
acad
[root @ i-B56C455B DMS] # 

Intente reemplazar dos líneas:

[root @ i-B56C455B DMS] # sed -i '1, / a / s / a / e / g' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
lugar1
Ebed
acad
[root @ i-B56C455B DMS] # 

Restaure el contenido original, reemplazando dos líneas a la vez, reemplazando solo la primera aee:

Código de copia

[root @ i-B56C455B DMS] # más abcd.txt 
aba1
siglo
acad
[root @ i-B56C455B DMS] # sed -i '1, / a / s / a / e /' abcd.txt 
[root @ i-B56C455B DMS] # más abcd.txt 
eba1
ebad
acad
[root @ i-B56C455B DMS] # 
Publicado 25 artículos originales · elogiado 8 · 20,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/boazheng/article/details/103704898
Recomendado
Clasificación