특정 문자열의 줄 내용을 캡처하는 방법은 무엇입니까?

특정 문자열의 줄 내용을 캡처하는 방법은 무엇입니까?

나는 다음과 같은 결과를 얻었습니다.

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

(BST) on pts/11 from host1 이것 없이는 필요합니다 .

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

내 현재 명령은./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last'

답변1

./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last' | sed -e 's/ (.*$//'

답변2

 ... | grep -Po '^.*(?=\(BST)|^.*'
  • -PPerl의 정규식 기능 사용(더 강력함, gnugrep)
  • -o일치하는 줄의 일치하는(비어 있지 않은) 부분만 인쇄합니다.
  • ^.*(?=\(BST)(BST오른쪽 예견이 뒤따르는 일련의 문자 찾기
  • | 또는...
  • ^.*다른 문자 시퀀스

답변3

./lastlog.sh | xargs -n1 finger | grep -i 'Never\|Last' | awk -F'(' '{print $1}'

관련 정보