test tag regulares regular probar online expresiones regex sed

regex - tag - ¿Cómo reemplazar toda la línea con sed?



sed regex replace (6)

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=[something else]

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


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


Me gusta esto:

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

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

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


Prueba esto:

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


Si desea usar awk , esto también funcionaría

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


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 la prueba aaa= , lo que significa que la línea contiene las letras aaa= . Luego reemplaza toda la línea con aaa = xxx. Puedes agregar ^ al comienzo de la prueba para asegurarte de que solo obtienes las líneas que comienzan con aaa= pero eso depende de ti.


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