Remove o último caractere antes de outro caractere

0

Eu tenho uma pergunta sobre o comando sed . É 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

para obter

a = 5 * x + 3

a = 5 * x + 7

etc.

usando o comando sed ?

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

    
por Physther 30.09.2016 / 16:24

2 respostas

3

2 abordagens

  1. mantenha tudo no último espaço:

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

    sed 's/ [^ ]*$//'
    
por 30.09.2016 / 17:00
0
sed -r 's/(.*)( \S+>)//' file

a = 5 * x + 3
a = 5 * x + 7
    
por 21.01.2017 / 17:05