微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Linux命令从日志中提取数据

您好,我有这种格式的日志文件

2017-09-13T11:08:27 + 02:00 {“log”:“ u001B [0m u001B [0m2017-09-13 11:07:58,443 | xte-8 | INFO [org.springframework.something] – asdasdadasdsler] – 执行步骤:[asdsdsdp] n“}

如何摆脱所有不必要的事情,并将 n更改为新行,以便看起来像这样:

[0m2017-09-13 11:07:58,443 | xte-8 | INFO [org.springframework.something] – asdasdadasdsler] – 执行步骤:[asdsdsdp]

如何使用PTRACE获得多个线程的一致视图?

用awk清理csv文件的头文件

RHEL 6.5 RPM依赖 – 为什么我得到一个关于已经安装的RPM依赖的错误

Jira,Tomcat和JBoss在Apache之后

无法在nodejs中执行git命令

(来自 n的新空行)

使用linux命令?

如何清理Linux内核使用的caching

在Linux操作系统上找不到PHP脚本作为运行进程?

按列sortingLinux

在Mac上使用XQuartz打开安装在远程服务器上的emacs时,将元素更改为选项键

C非阻塞键盘input

你可以使用sed和正则表达式来实现:

sed -i -E 's/[[A-z0-9]:+"]+([0m[0-9]{4}[^\]+)\n/$1/g' filename

这是做什么的:

sed -i -E 's/search/replace/g' filename搜索文件filename中的文件filename ,它替换为replace , g代表global。 通过在终端上键入man sed可以发现什么-i和-E : -i替换到位,表示在同一个文件中; -E代表使用扩展正则表达式。

[[A-z0-9]:+"]+匹配任何字符,任意数字, [ , ] , : , +和" 。 当遇到下一个正则表达式部分时,它将停止。

([^\]+)任何不是反斜杠的东西进行分组,但是我们必须使用([0m[0-9]{4}[^\]+)因为之前的正则表达式部分必须知道它有当遇到"[0m2017"时停止。 这个正则表达式将在n之前停止。

$1是保存第一组匹配的变量(我们只有一个组,但是如果有更多,它们将按照它们发生的顺序存储在$1 , $2 , $3等中)。 所以整个输入字符串将被我们在第一组中捕获的内容替换。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐