解析日志值,我想写一个shell脚本,从日志的grepped线分析值:与shell脚本
<WhereIsTheCar - the car with id number 'Sys Generated. VARIABLESTRING 1111' is driving to: Canada>
<WhereIsTheCar - the car with id number 'Sys Generated. VARIABLESTRING 2222' is driving to: Mexico>
<WhereIsTheCar - no car could be found with the following ID number: 'Sys Generated. VARIABLESTRING 3333'>
我已经grepped那些线条和创建阵列。那么我希望得到的输出是这样的:
Canada
Sys Generated. VARIABLESTRING 1111
Mexico
Sys Generated. VARIABLESTRING 2222
Not Found
Sys Generated. VARIABLESTRING 3333
我固然不是很好的shell脚本,但我已经想通了一个有点“暴力”的方式来获得我想要的值:
i=0
for line in "${grep[@]}"
do
loc[i]=`sed -e "s/.*\:\(.*\)>/\1/" <<< $line | sed -e "s/^[ \t]*//" -e "s/[ \t]*$//" -e "s/^\([\"']\)\(.*\)\1\$/\2/g"`
echo ${loc[i]};
id[i]=`sed -e "s/^.*\'\(.*\)\'.*$/\1/" <<< $line | sed -e "s/^[ \t]*//" -e "s/[ \t]*$//" -e "s/^\([\"']\)\(.*\)\1\$/\2/g"`
echo ${id[i]};
let i++
done
在哪里我创建一个位置和ID数组,然后试图修剪掉空白和额外的引号。我想我可以从这里完成,但我想知道是否有人有更优雅(或更适合)的方法。任何意见,将不胜感激。