Sed — ¿reemplazar un carácter en una línea coincidente en su lugar?

Pregunta:

En un archivo que contiene líneas como esta:

# lorem ipsum blah variable

Me gustaría eliminar el carácter # (comentario) en la misma línea que contiene una cadena específica, en su lugar. ¿ sed es bueno para esto?

Estoy luchando para que este condicional funcione. Tengo una forma "torpe" de hacer esto; Puedo encontrar el número de línea correspondiente con awk o sed y luego usar este número en un comando sed separado, pero creo que esto se puede hacer de una manera mucho mejor.

Respuesta:

Utilice la cadena que está buscando como selector de las líneas sobre las que se operará:

sed '/ipsum/s/#//g'

/ipsum/ selecciona líneas que contienen "ipsum" y solo en estas líneas se ejecutan los comandos que siguen. Puede usar llaves para ejecutar más comandos

/ipsum/{s/#//g;s/@/-at-/g;}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım