You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AIX服务器日志提取:基于UniqIdentifier获取分隔块内容(vi/Unix工具)

AIX日志指定内容提取方案

以下是几种在AIX环境下,通过Unix工具提取目标日志块的实现方法:

一、AWK命令实现

利用AWK的记录分隔符特性,直接定位包含UniqIdentifier的星号分隔块:

BEGIN { RS="^\\*{12}$"; ORS="\n************\n" }
/UniqIdentifier/ { print $0 }

逻辑说明:

  • 将RS(记录分隔符)设为12个星号组成的行,让每个星号包裹的内容成为独立记录
  • 设置ORS(输出记录分隔符)为换行+星号行,保证输出格式与原日志一致
  • 仅打印包含UniqIdentifier的记录,即可得到目标块

二、SED命令实现

通过循环匹配与空间缓存,定位目标块并输出:

/^\*{12}$/{
  h
  :loop
  n
  H
  /^\*{12}$/{
    g
    /UniqIdentifier/p
    b
  }
  b loop
}
' logfile

逻辑说明:

  • 遇到星号分隔行时,将其存入保持空间
  • 循环读取后续行并追加到保持空间,直到遇到下一个星号分隔行
  • 检查保持空间内容是否包含UniqIdentifier,若是则打印整个块

三、VI交互操作实现

适合手动提取场景,步骤如下:

  1. 打开日志文件:vi logfile
  2. 定位目标标识:输入/UniqIdentifier并回车,跳转到包含该标识的行
  3. 向上找起始分隔符:输入?^\*{12}$并回车,定位到最近的星号分隔行
  4. 标记起始位置:输入ma(将当前位置标记为a)
  5. 向下找结束分隔符:输入/^\*{12}$并回车,定位到下一个星号分隔行
  6. 标记结束位置:输入mb(将当前位置标记为b)
  7. 导出内容:输入:'a,'b w! extracted.log,将标记区间的内容写入新文件extracted.log

内容的提问来源于stack exchange,提问作者Pravin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:05:22