首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带卷曲的Awk或Sed进行优化

使用带卷曲的Awk或Sed进行优化
EN

Stack Overflow用户
提问于 2012-05-16 01:13:08
回答 3查看 1.1K关注 0票数 2

我有一个文件url,输出如下:

代码语言:javascript
复制
//
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:

代码语言:javascript
复制
curl -k http://mumbarouter.com/get.asp?statits | awk '/wan_gateway_get/ {print $2}'

以下哪项输出:

代码语言:javascript
复制
'74.125.224.32',
=

我怎么才能让它只输出:

代码语言:javascript
复制
74.125.224.32

谢谢,祝mumba快乐!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-16 01:25:34

Make it easy on yourself ...因为分手是很容易做到的:

代码语言:javascript
复制
curl -k http://mumbarouter.com/get.asp\?statits |
  awk -F\' '/wan_gateway_get/ {print $4}'
票数 2
EN

Stack Overflow用户

发布于 2012-05-16 01:25:56

以下是

代码语言:javascript
复制
awk '/wan_gateway_get/ {match($2, "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"); print substr($2,RSTART,RLENGTH)}'

是一种可能的方法。

票数 1
EN

Stack Overflow用户

发布于 2012-05-16 04:57:45

TXR解决方案:对实际语法进行自由形式的解析。(强制右大括号已添加到示例数据中。)

代码语言:javascript
复制
@(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)

运行:

代码语言:javascript
复制
$ txr data.txr data.txt
wan_gateway in configuration "data" is 74.125.224.32
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10605675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档