Como capturar o conteúdo da linha até certa string?

0

Eu tenho esta saída:

Never logged in.
Last login Wed Jun 22 15:12 2016 (BST) on pts/11 from host1

Eu preciso disso sem o (BST) on pts/11 from host1 assim:

Never logged in.
Last login Wed Jun 22 15:12 2016 

meu comando atual é ./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last'

    
por Nick_baba 29.12.2016 / 13:11

3 respostas

2
./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last' | sed -e 's/ (.*$//'
    
por 29.12.2016 / 13:16
2
 ... | grep -Po '^.*(?=\(BST)|^.*'
  • -P para usar a funcionalidade de expressão regular Perl (mais powferfull, gnugrep)
  • -o para imprimir apenas as partes correspondentes (não vazias) de uma linha correspondente
  • ^.*(?=\(BST) encontra uma sequência de caracteres seguida por (BST lookahead correto
  • | ou ...
  • ^.* de qualquer outra sequência de caracteres
por 29.12.2016 / 14:00
0
./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last' | awk -F'(' '{print $1}'
    
por 29.12.2016 / 13:21