【问题标题】:Print only lines between curly braces from tail -f从 tail -f 只打印花括号之间的行
【发布时间】:2020-09-14 22:01:46
【问题描述】:

我有一个脚本,它读取多个调试日志,将其附加到临时文件,然后在调试文件上执行tail -f,以便我们可以在单个窗口中监控调试事件并轻松查看用户操作何时引发事件。还有一堆元数据也写入了这些调试日志,我不想将它们包含在监控脚本的输出中。

有没有办法可以使用sedawk 仅打印大括号(包括大括号)中包含的数据?大括号内的数据可以而且总是跨越多行。

数据可能如下所示:

DON'T PRINT THIS DATA:!@#%$%^
DON'T "!@#()*& PRINT THIS DATA EITHER
}
DON"T PRINT THIS
{
PRINT THIS DATA BLOCK
AND THIS DATA
AND THIS LINE TOO:!@#(*&
}
DONT:!@# \/PRINT THIS
{
BUT PRINT THIS
}

【问题讨论】:

标签: bash awk sed tail


【解决方案1】:

使用多个 sed

sed -n '/{/,/}/p' InputFile | sed '/^{/d' | sed '/^}/d'

使用单个 sed

sed -n '/{/,/}/{/{/!{/}/!p}}' InputFile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-24
    • 2014-11-26
    • 2023-01-29
    • 2015-06-19
    • 1970-01-01
    • 2017-05-10
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多