bash - grep 两个模式之间的字符串 文件中的多个实例?
问题描述
我是 bash 脚本的新手,我需要制作一个脚本,该脚本将遍历有关已运行作业的日志文件,我需要提取某些值,例如使用的内存,然后是计算使用的内存所请求的内存。
首先,我只是尝试获取一个 grep 命令,该命令将 grep 文件中两个模式之间的值,这将是我编写此脚本的起点。
该文件看起来像这样:
20200429:04/29/2020 04:25:32;S;1234567.vpbs3;user=xx group=xxxxxx=_xxx_xxx_xxxx jobname=xx_xxxxxx queue=xxx ctime=1588148732 qtime=1588148732 etime=1588148732 start=1588148732 exec_host *8 exec_vnode=(xx2:mem=402653184kb:ncpus=8) Resource_List.mem= 393216mb Resource_List.ncpus=8 Resource_List.nodect=1 Resource_List.place=free Resource_List.preempt_targets=NONE Resource_List.Qlist=xxxq Resource_List.select=1 :mem=393216mb:ncpus=8 Resource_List.walltime=24:00:00 resource_assigned.mem= 402653184kb resource_assigned.ncpus=8
粗体的值是我需要提取的。它有多个工作和日期,因此该文件继续包含多个段落,例如具有不同日期和数字的数据。
通过在线查看类似问题,我想出了:
egrep -Eo 'Resource_List.mem=.{1,50}' sampleoutput.txt | cut -d "=" -f 2-
我得到了多行:
393216mb Resource_List.ncpus=8 Resource_List.nodec
而且我对如何只获得'393216mb'感到困惑,因为我从未真正使用过grep或削减太多。任何建议,即使它不使用 grep,也将不胜感激!
解决方案
很接近!.
是通配符,要匹配数字。
egrep -Eo 'Resource_List.mem=[0-9]*..' sampleoutput.txt
推荐阅读
- excel - 使用 VBA 显示 Excel 工作表标题
- android - Crashlytics:是否可以混淆原生库并获得符号化的崩溃报告?
- javascript - 检测浏览器键盘输入法功能
- python - SyntaxError:没有找到非本地“i”的绑定
- nextcloud - Nextcloud - 恢复整个垃圾箱
- java - Java / Spring在线程关闭后获取多租户程序的tenantId?
- r - R Plotly带颜色的下拉变量选择
- paypal-rest-sdk - 获取用户的 Paypal 订阅详细信息
- sql - 是否可以在 SQL OVER(ROW BETWEEN ...)-Clause 中设置动态窗口框架?
- python - 在 Django 中按类别和品牌对产品进行分组和显示