在 CentOS Linux 上对 3GB 的文件进行正则表达式替换

在 CentOS Linux 上对 3GB 的文件进行正则表达式替换

我有一个以下格式的日志文件

[2016-10-18 00:00:04 UTC] user1: hello
[2016-10-18 00:00:05 UTC] user2: hey user
[2016-10-18 00:00:07 UTC] user3: bye

我希望它采用这种格式

[2016-10-18 00:00:04] <user1> hello
[2016-10-18 00:00:05] <user2> hey user
[2016-10-18 00:00:07] <user3> bye

使用 Windows 上 Notepad++ 中的正则表达式替换非常简单,但是现在我面临 3 GB 大小的更大日志,我想在 VPS 上执行此操作。

由于 VPS 将运行 CentOS,执行此正则表达式替换的最佳方法是什么?

Find:     UTC] (\w+):
Replace with:    ] <$1> 

答案1

经过长时间的反复尝试,以及多次“为什么这不起作用?!”之后,我发现 sed 在这里对我有用

sed "s/ UTC] \([[:alnum:]]\+\):/] <\1>/g" log.txt > parsed.txt

相关内容