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