linux - greping后如何从文件中提取内容?

标签 linux bash shell ubuntu

执行完 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/

相关文章:

python - 使用 PPID 创建文件

c++ - 从动画文件中提取基本信息

linux - 专用服务器上的 Wordpress Admin 404

java - 为什么我可以直接从 bash 执行 JAR?

linux - 为 cygwin 安装选择的最小配置是什么?

linux - 如何获取其中包含多个目录的目录的链接数?

bash - "expect <<- DONE"是什么意思?

linux - SIPP : open file limit > FD_SETSIZE

linux - 搜索文本

linux - 如何解析 shell 脚本中的命令输出