GNU/Linux >> Tutoriales Linux >  >> Linux

¿Adjuntar palabra al final de la línea con Sed?

Esta pregunta ya tiene respuestas aquí :¿Cómo agregar texto al final de la línea cuando el patrón coincide?

(5 respuestas)
Cerrado hace 4 años.

Tengo un bloque de código de la siguiente manera en un archivo:

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2

Quiero buscar todas las líneas que tenían tc_ palabra clave y agregue status=D al final de esas líneas. Entonces, las entradas anteriores se volverán así

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1 status=D
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2 status=D

Estoy usando el siguiente comando para lograr esto:

sed -i '/tc_/a status=D' app.conf

Pero puedo ver status=D está buscando una nueva línea. No quiero una nueva línea para esto. Debe agregarse con un ' ' (espacio) .

Respuesta aceptada:

prueba

sed  -e '/tc_/s/$/ status=D/'

donde

  • /tc_/ en la línea donde se encuentra tc_,
  • s sustituir,
  • /$ final de línea,
  • / status=D/ por esta cadena

si se ve bien, agregue -i para editar en el lugar.


Linux
  1. Ordenarse con ordenar en la línea de comando

  2. Trabajando con tuberías en la línea de comando de Linux

  3. Ir al principio o al final del archivo en Vim [Consejo rápido]

  4. ^M al final de cada línea en vim

  5. Elimine los primeros cinco caracteres en cualquier línea de un archivo de texto en Linux con sed

Cómo revisar la ortografía en la línea de comandos de Linux con Aspell

Manipulación de texto en la línea de comando con grep

Seguimiento del tiempo con Timewarrior en la línea de comandos

Uso del comando sed de Linux con ejemplos

El concepto de 'Espacio de espera' y 'Espacio de patrón' en sed

línea de inserción sed con espacios a una línea específica