linux - 从 grep 结果中提取字符串

标签 linux bash shell awk grep

<分区>

我正在运行此命令以从我们的日志文件中提取一些数据。 我正在获取完整的行,但我对与消息 ID 关联的值感兴趣。

命令我正在运行-

grep -B 2 UPDATE_CHAIR_DESK_REQ Application.log | head -1000

我得到的输出

< MessageId :ID:414d51204541495052475731202020205143d55bf3f13821>
 < AppServiceID :abcfcdd>
 < ReplyToQName :UPDATE_CHAIR_DESK_REQ>
--
< MessageId :ID:414d51204541495052475731202020205143d55bf7f13821>
 < AppServiceID :abcfcdd>
 < ReplyToQName :UPDATE_CHAIR_DESK_REQ>
--
< MessageId :ID:414d51204541495052475731202020205143d55bf7f13821>
 < AppServiceID :abcfcdd>
 < ReplyToQName :UPDATE_CHAIR_DESK_REQ>
--
< MessageId :ID:414d51204541495052475731202020205143d55bfbf13821>
 < AppServiceID :abcfcdd>
 < ReplyToQName :UPDATE_CHAIR_DESK_REQ>
--
< MessageId :ID:414d51204541495052475731202020205143d55bfbf13821>
 < AppServiceID :abcfcdd>
 < ReplyToQName :UPDATE_CHAIR_DESK_REQ>
--
< MessageId :ID:414d51204541495052475731202020205143d55bfff13821>
 < AppServiceID :abcfcdd>
 < ReplyToQName :UPDATE_CHAIR_DESK_REQ>**

我要找的是 MessageId :ID: 前面的值,它的长度总是 48 个字符。我想增强我的 grep 命令以在屏幕上或文件上仅获取列格式的这些值。

最佳答案

grep -B 2 UPDATE_CHAIR_DESK_REQ Application.log | egrep -o ':ID:.{48}' 

关于linux - 从 grep 结果中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53286176/

相关文章:

linux - Bash 脚本查找其中包含修改文件的目录

PHP 服务器 "stuttering",卡住服务器

python - 使用 Python 或 shell 脚本更新 XML 文档

java - 在非交互式脚本中安装 jre

shell - 将 sendmail 用于 HTML 正文和二进制附件

shell - 是否有 .irbrc 的 Scala 版本或其他定义一些默认库供 REPL 使用的方法?

java - 以编程方式更改 Mac 地址-Android

linux - linux 内核使用哪种类型的内存模型(即平面/分段)?

linux - Bash 脚本 - 从 Systemd 启动脚本时的用户交互

linux - Bash 函数局部数组变量在调用位置不可访问