我有相同的日志文件,如下所示:
B
首先,我使用foreach
找到日志
2016-04-01 11:16:30.745:[11878][TEST][test]
2016-04-01 11:16:30.745:[11878][TEST][wait|hold|name(0x03154246) 101ms]
....
然后,我怎样才能得到字段值
grep wait
答案 0 :(得分: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]
之前的数字。