파일에서 문자열을 검색하면 다음과 같은 결과가 나타납니다.
$ grep "java vm version" dev_server0
F java vm version : 6.1.094 25.51-b02
6.1.094
주변의 다른 모든 문자/숫자를 출력하고 제거하면 됩니다 . 어떻게 해야 하나요?
답변1
노력하다
grep "java vm version" dev_server0 | awk '{print $6}'
awk
기본적으로 입력 줄은 공백으로 구분되며, 6번째 필드가 필요합니다.
예를 들어:
$ echo 'F java vm version : 6.1.094 25.51-b02' | awk '{print $6}'
6.1.094
있으신 분은 grep
시도해 pcre
보세요.
grep -oP 'java vm version\s*:\s*\K\S+' dev_server0
java vm version\s*:\s*\K
이 패턴을 긍정적으로 검토하세요.\S+
공백이 아닌 문자 추출
답변2
POSIX적으로:
sed -n 's/.*java vm version[[:blank:]:]*\([^[:blank:]]*\).*/\1/p'
답변3
6번째 필드만 인쇄합니다.
grep "java vm version" dev_server0 | awk '{print $6}'