Grepは行内の数字を探します。

Grepは行内の数字を探します。

次の2つの出力を取得する必要がありますか?

入力する

/usr/IBM/WebSphere/7.0/UpdateInstaller/java/jre/bin/java -Declipse.security -Dwas.status.socket=48101
/home/axg009/usr/IBM/WebSphere/8.5/AppServer/java_1.7_64/jre/bin/java -Declipse.security -Dwas.status.socket=48101

出力1

7.0
8.5

出力2

7.0/UpdateInstaller/java/jre/bin/java
8.5/AppServer/java_1.7_64/jre/bin/java

ベストアンサー1

最初のケース:

grep -oP 'IBM/WebSphere/\K[0-9]\.[0-9]' file

2番目の場合:

grep -oP 'IBM/WebSphere/\K[0-9]\.[0-9].*java ' file
  • -PPerl正規表現の有効化
  • -o一致する部分のみ印刷
  • IBM/WebSphere/\K\K一致変数が消去されるまでセクションを指定するため、印刷される内容の一部にはなりません。
  • [0-9]\.[0-9]数字の後にはドットが続き、その後には別の数字が続きます。
    • .*java2番目は、javaコマンドが終了するまで(java後にスペースが来るまで)一致しようとしています。

おすすめ記事