【发布时间】:2020-12-02 15:07:51
【问题描述】:
我有一个工具可以输出带有时间戳前缀的日志,但是日志条目可能包含换行符。我想将任何没有时间戳的行与前一行合并。
例子:
[ 2020/08/12 11:40] Success with "one line [42]"
[ 2020/08/12 11:40] Success with "two
lines [13]"
[ 2020/08/12 11:40] Success with "two lines with a twist
[19] to confuse you"
[ 2020/08/12 11:41] Failure with "one line again"
使用 awk 我可以做这样的事情来合并不以 [ 大括号开头的行:
awk -v RS="[" 'NR>1{$1=$1; print RS, $0}'
但是,您可以在上面的“twist”行中看到失败的地方。 “twist”行以 [ 开头,它不是时间戳的一部分。
有没有办法为那个时间戳前缀使用正则表达式?或者有没有更好的命令行工具来完成这个?
【问题讨论】:
标签: regex awk text-processing