Saída de 'java -version' não correspondida por grep ou awk

4

Na minha máquina Linux, não está claro para mim por que, se eu fizer o seguinte, não obtenho apenas a string de versão ("1.5.0_32").

# java -version | grep version | awk '{print $NF}'
java version "1.5.0_32"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_32-b05)
Java HotSpot(TM) Server VM (build 1.5.0_32-b05, mixed mode)

Por que não grep ou awk funciona?

Só para mostrar que o grep e o awk funcionam em outro exemplo

# echo ' java version "1.5.0_32" ' | grep version  | awk '{print $NF}'
"1.5.0_32"
    
por yael 17.04.2013 / 13:14

1 resposta

14

Tente assim:

java -version 2>&1 | grep version  | awk '{print $NF}'

Parece que a saída vai para stderr.

Além disso, o grep não é necessário:

java -version 2>&1 | awk '/version/{print $NF}'
    
por 17.04.2013 / 13:21

Tags