![如何grep文件中的字符串并输出字符串旁边的数字](https://linux22.com/image/96888/%E5%A6%82%E4%BD%95grep%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%B9%B6%E8%BE%93%E5%87%BA%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%97%81%E8%BE%B9%E7%9A%84%E6%95%B0%E5%AD%97.png)
当我 grep 文件中的字符串时,我得到这个输出。
$ 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
POSIXly:
sed -n 's/.*java vm version[[:blank:]:]*\([^[:blank:]]*\).*/\1/p'
答案3
只打印第 6 个字段:
grep "java vm version" dev_server0 | awk '{print $6}'