今天碰到一个奇葩问题,各位可以试一试。

想拿到 java -version 输出结果中的精确版本号, 例如下面结果中的 1.8.0_91

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

发现无法使用 grep / sed / awk 来过滤, 被恶心到了
这个问题其实很简单,这个是 stderr 输出, grep / sed / awk 等管道工具看不见,重定向一下就可以了………………

java -version 2>&1 |grep -oP '(?<=").*(?=")'

PS. 新版本的 jdk, 我这里是 jdk11, 有另一个参数 java --version 是 stdout ,可以正常对结果进行过滤,注意是两个横线。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-16
  • 2022-12-23
  • 2021-08-05
  • 2021-09-01
  • 2021-11-06
  • 2021-10-16
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案