ファイルから文字列を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


お持ちの方はgrepお試しpcreください。

grep -oP 'java vm version\s*:\s*\K\S+' dev_server0
  • java vm version\s*:\s*\Kこのパターンを積極的に確認してください。
  • \S+空白以外の文字の抽出

答え2

POSIX的に:

sed -n 's/.*java vm version[[:blank:]:]*\([^[:blank:]]*\).*/\1/p'

答え3

6番目のフィールドのみを印刷します。

grep "java vm version" dev_server0 | awk '{print $6}' 

関連情報