繁体   English   中英

需要帮助使用bash清理日志文件

[英]Need help cleaning up a log file with bash

06/25 11:07:24 [INFO] *** CONTROL OUT bytes: 020106/25 11:07:24 [INFO]*** CONTROL IN bytes:080205063D715EB8F4740400200000FFE7010002000000000000000000000006/25 11:07:24 [INFO] hardware revision: 006/25 11:07:24 [INFO] dongle firmware version: 2.506/25 11:07:24 [INFO] dongle bluetooth address: 06:3D:71:5E:B8:F406/25 11:07:24 [INFO] CLIENT: [06/25 11:07:24] Dongle | Version|"majorVersion":2,"minorVersion":5,"deviceAddr":6,61,113,94,184,244],"flashEraseTime":1140,"firmwareStartAddress":8192,"firmwareEndAddress":124927,"ccIC":2,"hardwareRevision":0,"revision":0}06/25 11:07:24 [INFO] CLIENT: [06/25 11:07:24] Dongle | Set Power Level | 506/25 11:07:24 [INFO] Received message from client.06/25 11:07:24 [INFO] *** CONTROL OUT bytes: 020D050

因此,我想通过将每个命令/部分放在换行符上来进行清理,如下所示:

06/25 11:07:24 [INFO] CLIENT: [06/25 11:07:24] Dongle | Set Power Level | 5
06/25 11:07:24 [INFO] Received message from client.
06/25 11:07:24 [INFO] *** CONTROL OUT bytes: 020D050

但我不太确定从这儿去哪里。

更新:评论合并在答案中! 谢谢查尔斯·达菲帕博克

假设您的字符串在filename

# bound to GNU sed, because of '-r/--regexp-extended'
sed -r 's:[0-9]{2}/[0-9]{2}:\n&:g' <filename

# without '-r':
sed 's:[0-9][0-9]/[0-9][0-9]:\n&:g' <filename

为了提高安全性, pabouk建议匹配更长的模式:

sed -r 's@[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}@\n&@g' <filename
awk 'BEGIN { RS="[0-9]{2}/[0-9]{2}"; } { print rt $0; rt = RT; }' < filename

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM