执行完 grep
后如何提取 group-3-vm1
?
$ cat output/tpcds_query_1a_71_mr.out | grep "Tracking URL" | tail -1
结果如下:
Starting Job = job_1442587212068_0126, Tracking URL = http://group-3-vm1:8088/proxy/application_1442587212068_0126/
最佳答案
这个 awk 命令取代了 grep 和 tail 命令,同时还提取了感兴趣的文本:
$ awk -F'[:/]' '/Tracking URL/{n=$4;} END{print n;}' output/tpcds_query_1a_71_mr.out
group-3-vm1
工作原理
-F'[:/]'
这会将字段分隔符设置为冒号或斜杠。
/追踪网址/{n=$4;}
这将查找包含
Tracking URL
的行并将第四个字段保存在变量n
中。END{print n;}
到达文件末尾后,这将打印我们找到的最后一个
n
。
例子
这是一个示例测试文件和输出:
$ cat output/tpcds_query_1a_71_mr.out
Starting Job = job_1442587212068_0126, Tracking URL = http://group-1-vm1:8088/proxy/application_1442587212068_0126/
Starting Job = job_1442587212068_0126, Tracking URL = http://group-2-vm1:8088/proxy/application_1442587212068_0126/
Starting Job = job_1442587212068_0126, Tracking URL = http://group-3-vm1:8088/proxy/application_1442587212068_0126/
Starting Job = job_1442587212068_0126, No Track URL = http://group-4-vm1:8088/proxy/application_1442587212068_0126/
$ awk -F'[:/]' '/Tracking URL/{n=$4;} END{print n;}' output/tpcds_query_1a_71_mr.out
group-3-vm1
关于linux - greping后如何从文件中提取内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704945/