Remova o último caractere antes de outro caractere

Remova o último caractere antes de outro caractere

Tenho uma dúvida sobre o sedcomando. É possível remover um caractere (ou conjunto de caracteres) entre um espaço vazio e um caractere escolhido? Se eu tiver uma lista contendo várias linhas de texto, como:

a = 5 * x + 3 n\exit>

a = 5 * x + 7 abndc\exit>

... etc etc

obter

a = 5 * x + 3

uma = 5 * x + 7

etc etc.

usando sedcomando?

Então basicamente remova tudo do espaço depois 3para>

Responder1

2 abordagens

  1. mantenha tudo até o último espaço:

    sed 's/\(.*\) .*/\1/'
    
  2. encontre um espaço e alguns não-espaços no final da linha e remova-os

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

Responder2

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

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

informação relacionada