STH

2016-04-01 3 views
-1

を見つけるために、指定したテキストモードによると、私はこのように同じログファイル、持っている:私はどのようにすることができ、ログ、その後STH

2016-04-01 11:16:30.745:[11878][TEST][wait|hold|name(0x03154246) 101ms] 

を発見したためにgrep waitを使用して、最初に

2016-04-01 11:16:30.745:[11878][TEST][test] 
2016-04-01 11:16:30.745:[11878][TEST][wait|hold|name(0x03154246) 101ms] 
.... 

をそれはあなたが書いたものから把握するのは難しいですが、何かのようにはあなたのために適切であり得るフィールド値に

value1: 2016-04-01 11:16:30.745 
value2: 0x03154246 
value3: 101 
+1

ここでパターンは何ですか?何を試しましたか? – fedorqui

答えて

0

を取得:

#!/usr/bin/env sh 

set -e 

string=$(grep wait "$1") 

value1=$(echo "$string" | rev | cut -d ":" -f 2- | rev) 
value2=$(echo "$string" | grep -o -E "\(0x.+\)" | sed 's,),,' | sed 's,(,,') 
value3=$(echo "$string" | grep -o -E "[0-9]+ms]$" | sed 's,ms],,') 

echo vaule1: "$value1" 
echo vaule2: "$value2" 
echo vaule3: "$value3" 

使用法:

$ ./get.sh LOG 

value1最後:にすべてアップしています。

value2は、最後の(0x)の間の桁です。

value3は、文字列の最後にms]より前の数字です。

関連する問題