./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last' | sed -e 's/ (.*$//'
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'
... | 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 ./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last' | awk -F'(' '{print $1}'