Eliminar el último carácter antes de otro carácter.

Eliminar el último carácter antes de otro carácter.

Tengo una pregunta sobre el sedcomando. ¿Es posible eliminar un carácter (o conjunto de caracteres) entre un espacio vacío y un carácter elegido? Si tengo una lista que contiene varias líneas de texto como:

a = 5 * x + 3 n\exit>

a = 5 * x + 7 abndc\exit>

... etcétera etcétera

Llegar

a = 5 * x + 3

a = 5 * x + 7

etcétera etcétera.

usando sedel comando?

Así que básicamente elimina todo del espacio después 3de>

Respuesta1

2 enfoques

  1. mantén todo hasta el último espacio:

    sed 's/\(.*\) .*/\1/'
    
  2. busque un espacio y algunos no espacios al final de la línea y elimínelos

    sed 's/ [^ ]*$//'
    

Respuesta2

sed -r 's/(.*)( \S+>)/\1/' file

a = 5 * x + 3
a = 5 * x + 7

información relacionada