我们收到了以下信息:
[18:51:10] [Server thread/INFO]: Tester121 entered area ~ Wilderness - (PvP) ~
我们想解释输入并定义不同的变量。
[$time] [Server thread/INFO]: $player entered area ~ $area - (PvP) ~
结果应为:
time="18:51:10"
player="Tester121"
area="Wilderness"
我是stackoverflow的新手,随时发表评论,以便我可以提高我的技能提问方式。
答案 0 :(得分:0)
=~
中的[[ ]]
运算符评估POSIX ERE格式的正则表达式,并将结果匹配组分配给数组BASH_REMATCH
。
re='^\[([[:digit:]:]+)\] \[Server thread/INFO\]: ([^[:space:]]+) entered area ~ ([^[:space:]]+) - [(]PvP[)] ~'
line='[18:51:10] [Server thread/INFO]: Tester121 entered area ~ Wilderness - (PvP) ~'
if [[ $line =~ $re ]]; then
time=${BASH_REMATCH[1]}
player=${BASH_REMATCH[2]}
area=${BASH_REMATCH[3]}
fi