Pregunta ¿Cómo reemplazar toda la línea con sed?


Supongamos que tengo un archivo con líneas

aaa = bbb

Ahora me gustaría reemplazarlos por:

aaa = xxx

Puedo hacer eso de la siguiente manera:

sed "s / aaa = bbb / aaa = xxx / g"

Ahora tengo un archivo con algunas líneas de la siguiente manera:

aaa = bbb
aaa = ccc
aaa = ddd
aaa = [algo más]

¿Cómo puedo reemplazar todas esta líneas aaa=[something] con aaa=xxx utilizando sed?


73
2018-01-11 15:40


origen


Respuestas:


Prueba esto:

sed "s/aaa=.*/aaa=xxx/g"

130
2018-01-11 15:46



También puede usar la línea de cambio de sed para lograr esto:

sed -i "/aaa=/c\aaa=xxx" your_file_here

Esto pasará y encontrará cualquier línea que pase el aaa= prueba, lo que significa que la línea contiene las letras aaa=. Luego reemplaza toda la línea con aaa = xxx. Puedes agregar un ^ al comienzo de la prueba para asegurarte de que solo obtienes las líneas que comienzan con aaa= pero eso depende de ti.


65
2017-09-05 03:19



Me gusta esto:

sed 's/aaa=.*/aaa=xxx/'

Si quiere garantizar que el aaa= está al comienzo de la línea, hazlo:

sed 's/^aaa=.*/aaa=xxx/'

36
2018-01-11 15:46



Si quieres usar awk entonces esto también funcionaría

awk -F= '{$2="xxx";print}' OFS="\=" filename

2
2018-01-11 16:10



sed -i.bak 's/\(aaa=\).*/\1"xxx"/g' your_file

2
2018-04-18 12:39



Esto podría funcionar para usted:

cat <<! | sed '/aaa=\(bbb\|ccc\|ddd\)/!s/\(aaa=\).*/\1xxx/'
> aaa=bbb
> aaa=ccc
> aaa=ddd
> aaa=[something else]
!
aaa=bbb
aaa=ccc
aaa=ddd
aaa=xxx

1
2018-01-11 16:49