我正在分析日志包含如下信息:
y1e","email":"","money":"100","coi
Run Code Online (Sandbox Code Playgroud)
我想要获取金钱的价值,我使用'awk'就像:
grep pay action.log | awk '/"money":"([0-9]+)"/' ,
Run Code Online (Sandbox Code Playgroud)
那我怎样才能得到([0-9] +)中的子表达式值?
如果你有GNU AWK(gawk):
awk '/pay/ {match($0, /"money":"([0-9]+)"/, a); print substr($0, a[1, "start"], a[1, "length"])}' action.log
Run Code Online (Sandbox Code Playgroud)
如果不:
awk '/pay/ {match($0, /"money":"([0-9]+)"/); split(substr($0, RSTART, RLENGTH), a, /[":]/); print a[5]}' action.log
Run Code Online (Sandbox Code Playgroud)
两者的结果是100.而且没有必要grep.
| 归档时间: |
|
| 查看次数: |
12028 次 |
| 最近记录: |