我有一个文件网址,输出如下:
//
data = {
'ip': '',
'server_ip': '',
'router_name': 'Banana Hammock',
'wan_domain': '',
'wan_gateway': '74.125.224.32',
'wan_gateway_get': '74.125.224.32',
'wan_get_domain': 'isp.example.com',
'wan_hostname': 'MumbaVille',
'wan_hwaddr': '00:00:00:00:00:00',
我正在使用此命令获取wan_gateway_get:
curl -k http://mumbarouter.com/get.asp?statits | awk '/wan_gateway_get/ {print $2}'
输出:
'74.125.224.32',
=
如何才能输出:
74.125.224.32
谢谢,快乐的mumba!
答案 0 :(得分:2)
Make it easy on yourself ...导致分手非常轻松:
curl -k http://mumbarouter.com/get.asp\?statits |
awk -F\' '/wan_gateway_get/ {print $4}'
答案 1 :(得分:1)
以下
awk '/wan_gateway_get/ {match($2, "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); print substr($2,RSTART,RLENGTH)}'
是可能的方式之一。
答案 2 :(得分:0)
TXR解决方案:实际语法的自由格式解析。 (强制性右括号添加到示例数据中。)
@(define comment)//@nil@\n@(end)
@(define ws)@(cases)@(comment)@(or)@/\s*/@(end)@(end)
@(define id (id))@(ws)@{id /\w[\w\d_]+/}@(ws)@(end)
@(define item (it))@(ws)'@{it /[^']+/}'@(ws)@(end)
@(define braced_key_values (ithash))@\
{@(coll)@(item key):@(item value)@(until)}@(end)}@\
@(bind ithash @(progn '#H((:equal-based) ,*[mapcar list key value])))@\
@(end)
@(freeform)
@(id config)@(ws)=@(ws)@(braced_key_values config-hash)
@(output)
wan_gateway in configuration "@config" is @[config-hash "wan_gateway"]
@(end)
执行命令
$ txr data.txr data.txt
wan_gateway in configuration "data" is 74.125.224.32