如何grep文件中的字符串并输出字符串旁边的数字

如何grep文件中的字符串并输出字符串旁边的数字

当我 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


如果你有greppcre请尝试

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}' 

相关内容