【发布时间】:2019-03-29 13:30:18
【问题描述】:
我正在尝试从日志文件中打印一些日志以用于警报报告工具,我只需要过滤那些以 ** 等特殊字符开头的日志。 请在此处找到日志文件中一些文本的示例。(图片)
到目前为止,我设法在 SOH 字符之间打印日志,如下所示,但我无法找出如何仅打印以“**”开头的日志,所以我想打印如下所示的日志”
日志文件内容:
SOH
+++ skdfhahjsahsdjk >
** ALPHA EDFJDJFKLJDKFJKSDLFJL
SDFSDGDRGRTG
WEFETTFYRT #168113++-
SOH
+++ skdfhahjsahsdjk >
* KJENRFKES DFJKLSDFJEDFJDJFKLJDKFJKSDLFJL
SDFSDGDRGRTG
WEFETTFYRT #168113++-
SOH
+++ skdfhahjsahsdjk >
CL mesukww juwaehdiearfa
SDFSDGDRGRTG
WEFETTFYRT #168113++-
SOH
+++ skdfhahjsahsdjk >
*C KJENRFKESDFJ ksludhieokdaewmdp
SDFSDGDRGRTG
WEFETTFYRT #168113++-
SOH
+++ skdfhahjsahsdjk >
** ALPHA EDFJDJFKLJDKFJKSDLFJL
SDFSDGDRGRTG
WEFETTFYRT #168113++-
到目前为止,我设法通过
打印 SOH 字符(在日志上方)之间的日志cat OMlog5|awk -F'[|^A^A]'> 测试3
我也试过下面的命令,过滤那些以 ^* 开头的,但它只打印出以 * 开头的特定行,而不是整个日志
结果:
cat OMlog5|awk -F'[|^A^A]' '{print $0}'|grep "^*" >Test4 :
** KDHFGJHSDGDJLKSGJKFJJ
我希望是:
+++ skdfhahjsahsdjk >
** KJENRFKESDFJKLSDFJEDFJDJFKLJDKFJKSDLFJL
SDFSDGDRGRTG
WEFETTFYRT #168113++-
你能帮忙找到正确的命令吗?
提前致谢!
我试图避免打印特定记录,例如与“ALPHA”相关的日志。我尝试通过此代码但未成功:
cat logfile |grep -v "ALPHA"> result_log
在这个之后,它把我打印出来:
+++ skdfhahjsahsdjk >
SDFSDGDRGRTG
WEFETTFYRT #168113++-
我希望不打印以上与 alpha 相关的整个日志。 你能帮忙吗?
【问题讨论】:
-
一段时间后,当您向问题添加新要求且答案已被接受时,这会让人感到困惑。 我建议在此处恢复更改。 而是写一个新问题,其中包含指向此问题的链接以及对差异或附加要求的解释。显示新需求的示例输入、到目前为止您实际使用的过滤脚本(没有新需求)以及您建议的修改或附加脚本/命令。在
cat logfile |grep -v "ALPHA"> result_log中,不清楚logfile是您的原始日志文件还是第一个处理步骤的结果。
标签: linux