grep または awk が「java -version」の出力と一致しません。

grep または awk が「java -version」の出力と一致しません。

私のLinuxボックスでは、次のようにすると、なぜバージョン文字列( "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)

なぜ動作しないか、grep動作awkしないのですか?

別の例では、grepとawkがどのように機能するかを示すために

# echo ' java version "1.5.0_32" ' | grep version  | awk '{print $NF}'
"1.5.0_32"

ベストアンサー1

この試み:

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

出力がstderrに送信されるようです。

また、grepする必要はありません。

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

おすすめ記事