免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1575 | 回复: 10
打印 上一主题 下一主题

[文本处理] sed/awk处理多行文本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-10-20 15:16 |只看该作者 |倒序浏览
本帖最后由 cniter 于 2016-10-20 15:34 编辑

具体是这样的,我需要截取ansible的输出结果中的一部分,为"stdout_lines"到下一个出现IP之间的内容,即获取"stdout_lines"这个输出的内容,样例大概是这样子
192.168.1.1 | SUCCESS => {
    "changed": true,
    "rc": 0,
    "stderr": "",
    "stdout": "--"

    "stdout_lines": [
         4646546546
         13212313
          ........
        ]
}

192.168.1.2 | SUCCESS => {
    "changed": true,
    "rc": 0,
    "stderr": "",
    "stdout": "--"

    "stdout_lines": [
         4646546546
         132af12313
         sfgjldjfkglagf
          ........
        ]
}

192.168.1.3 | SUCCESS => {
    "changed": true,
    "rc": 0,
    "stderr": "",
    "stdout": "--"

    "stdout_lines": [
         4646546546
         13212313
         apoifsdafja
          ........
        ]
}

192.168.1.4 |  UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}



希望的结果是,stdout_lines里面会有列表,字曲,或者是元组之类,即带符号[], {}, ()
4646546546
13212313
........

4646546546
132af12313
sfgjldjfkglagf
........


4646546546
13212313
apoifsdafja
........
谢各位大神

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
2 [报告]
发表于 2016-10-20 15:24 |只看该作者
希望的结果是怎样?
  1. sed '/"stdout_lines": \[/,/]/!d' file
复制代码

?

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2016-10-20 16:07 |只看该作者
本帖最后由 sunzhiguolu 于 2016-10-20 16:08 编辑
  1. perl -0nle 'print map {s/^\s+//gmr."\n"} m/"stdout_lines":.*?\n([^]]+)/g' f
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-10-20 16:18 |只看该作者
回复 3# sunzhiguolu

测试了您的命令,发现它会把多行的输出截取一行,比如下面这行"|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zon
e=cache_one:4000m inactive=2d max_size=20g'), ('upstream', OrderedDict([('backend', OrderedDict([('server', '
127.0.0.1:80 weight=1'), ('sticky', None)]))])), ('include', 'mime.types'), ('default_type', 'application/oct
et-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('ser
ver_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_
cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', '
X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/
apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('roo
t', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('acces
s_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('inclu
de', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_in
dex', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000')]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root
', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_para
m', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page
', '500 502 503 504 /50x.html')]))]",

它截取后只有
"|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', [OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)


论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
5 [报告]
发表于 2016-10-20 16:19 |只看该作者
  1. perl -ne 'if(/"stdout_lines"/){$P=1;next}if(/\]/){$P=0;print"\n"}if($P){s/^\s+//gm;print}' f
复制代码

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-10-20 16:24 |只看该作者
回复 4# cniter
具体是这样的,我需要截取ansible的输出结果中的一部分,为"stdout_lines"到下一个出现IP之间的内容,即获取"stdout_lines"这个输出的内容
你提供的文本与发帖时的文本格式存在差异, 能否提供一条完整的记录?


论坛徽章:
0
7 [报告]
发表于 2016-10-21 09:58 |只看该作者
回复 6# sunzhiguolu
内容具体是这样子
192.168.1.1 | SUCCESS => {
    "changed": true,
    "rc": 0,
    "stderr": "",
    "stdout": "------------------------------------------------------------------------------------------\r\n|http.server.listen                      |   check failed|                              the value is 80|\r\n------------------------------------------------------------------------------------------\r\n|http.server.server_name                 |       check ok|                                             |\r\n------------------------------------------------------------------------------------------\r\n|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)]))])), ('include', 'mime.types'), ('default_type', 'application/octet-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('server_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', 'X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('root', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('access_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('include', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_index', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000')]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page', '500 502 503 504 /50x.html')]))]\r\n------------------------------------------------------------------------------------------\r\n|events                                  |['worker_connections']\r\n------------------------------------------------------------------------------------------\r\n",
    "stdout_lines": [
        "------------------------------------------------------------------------------------------",
        "|http.server.listen                      |   check failed|                              the value is 80|",
        "------------------------------------------------------------------------------------------",
        "|http.server.server_name                 |       check ok|                                             |",
        "------------------------------------------------------------------------------------------",
        "|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)]))])), ('include', 'mime.types'), ('default_type', 'application/octet-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('server_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', 'X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('root', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('access_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('include', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_index', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000')]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page', '500 502 503 504 /50x.html')]))]",
        "------------------------------------------------------------------------------------------",
        "|events                                  |['worker_connections']",
        "------------------------------------------------------------------------------------------"
    ]
}
192.168.1.2 | SUCCESS => {
    "changed": true,
    "rc": 0,
    "stderr": "",
    "stdout": "------------------------------------------------------------------------------------------\r\n|http.server.listen                      |   check failed|                              the value is 80|\r\n------------------------------------------------------------------------------------------\r\n|http.server.server_name                 |       check ok|                                             |\r\n------------------------------------------------------------------------------------------\r\n|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', [OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)]))]), OrderedDict([('tomcat', OrderedDict([('server', ['127.0.0.1:80 weight=1', '127.0.0.1:8080 weight=1']), ('sticky', None)]))])]), ('include', 'mime.types'), ('default_type', 'application/octet-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('server_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', 'X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('root', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('access_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('include', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_index', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000'), ('if', OrderedDict([('($query_string ~ /id/)', OrderedDict())]))]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page', '500 502 503 504 /50x.html')]))]\r\n------------------------------------------------------------------------------------------\r\n|events                                  |['worker_connections']\r\n------------------------------------------------------------------------------------------\r\n",
    "stdout_lines": [
        "------------------------------------------------------------------------------------------",
        "|http.server.listen                      |   check failed|                              the value is 80|",
        "------------------------------------------------------------------------------------------",
        "|http.server.server_name                 |       check ok|                                             |",
        "------------------------------------------------------------------------------------------",
        "|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', [OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)]))]), OrderedDict([('tomcat', OrderedDict([('server', ['127.0.0.1:80 weight=1', '127.0.0.1:8080 weight=1']), ('sticky', None)]))])]), ('include', 'mime.types'), ('default_type', 'application/octet-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('server_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', 'X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('root', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('access_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('include', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_index', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000'), ('if', OrderedDict([('($query_string ~ /id/)', OrderedDict())]))]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page', '500 502 503 504 /50x.html')]))]",
        "------------------------------------------------------------------------------------------",
        "|events                                  |['worker_connections']",
        "------------------------------------------------------------------------------------------"
    ]
}
192.168.1.3 | SUCCESS => {
    "changed": true,
    "rc": 0,
    "stderr": "",
    "stdout": "------------------------------------------------------------------------------------------\r\n|http.server.listen                      |   check failed|                              the value is 80|\r\n------------------------------------------------------------------------------------------\r\n|http.server.server_name                 |       check ok|                                             |\r\n------------------------------------------------------------------------------------------\r\n|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)]))])), ('include', 'mime.types'), ('default_type', 'application/octet-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('server_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', 'X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('root', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('access_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('include', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_index', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000')]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page', '500 502 503 504 /50x.html')]))]\r\n------------------------------------------------------------------------------------------\r\n|events                                  |['worker_connections']\r\n------------------------------------------------------------------------------------------\r\n",
    "stdout_lines": [
        "------------------------------------------------------------------------------------------",
        "|http.server.listen                      |   check failed|                              the value is 80|",
        "------------------------------------------------------------------------------------------",
        "|http.server.server_name                 |       check ok|                                             |",
        "------------------------------------------------------------------------------------------",
        "|http                                    |[('proxy_cache_path', '/opt/proxy_temp levels=1:2 keys_zone=cache_one:4000m inactive=2d max_size=20g'), ('upstream', OrderedDict([('backend', OrderedDict([('server', '127.0.0.1:80 weight=1'), ('sticky', None)]))])), ('include', 'mime.types'), ('default_type', 'application/octet-stream'), ('sendfile', 'on'), ('keepalive_timeout', '65'), ('server', OrderedDict([('listen', '80'), ('server_name', 'localhost'), ('location', [OrderedDict([('/', OrderedDict([('proxy_cache', 'cache_one'), ('proxy_cache_valid', '200 304 12h'), ('proxy_cache_key', '$uri$is_args$args'), ('proxy_set_header', ['Host $host', 'X-Forwarded-For $remote_addr']), ('expires', '2d'), ('concat', 'on'), ('concat_max_files', '30'), ('root', '/apps/data/nginx_80'), ('index', 'index.html index.htm')]))]), OrderedDict([('= /50x.html', OrderedDict([('root', '/apps/data/nginx_80')]))]), OrderedDict([('= /nginx_status', OrderedDict([('stub_status', 'on'), ('access_log', 'off'), ('allow', '127.0.0.1'), ('deny', 'all')]))]), OrderedDict([('= /status', OrderedDict([('include', 'fastcgi_params'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('fastcgi_index', 'index.php'), ('fastcgi_pass', '127.0.0.1:9000')]))]), OrderedDict([('~ \\\\.php$', OrderedDict([('root', '/apps/data/nginx_80'), ('fastcgi_pass', '127.0.0.1:9000'), ('fastcgi_index', 'index.php'), ('fastcgi_param', 'SCRIPT_FILENAME $document_root$fastcgi_script_name'), ('include', 'fastcgi_params')]))])]), ('error_page', '500 502 503 504 /50x.html')]))]",
        "------------------------------------------------------------------------------------------",
        "|events                                  |['worker_connections']",
        "------------------------------------------------------------------------------------------"
    ]
}
192.168.1.4 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}



论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
8 [报告]
发表于 2016-10-21 11:28 |只看该作者
  1. perl -0ne 'print $1 while(/"stdout_lines"\N+\n(.*?)(?=\]$)/smg);' f
复制代码

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
9 [报告]
发表于 2016-10-21 12:01 |只看该作者
  1. perl -nle 'if(/"stdout_lines"/){$P=1;next}if(/\]\Z/){$P=0}print if($P)' f
复制代码

论坛徽章:
0
10 [报告]
发表于 2016-10-21 17:37 |只看该作者
回复 9# sunzhiguolu

3q,哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP