SeD vs Postfix日志

时间:2017-06-13 07:28:33

标签: regex sed postfix

我正在编写一个脚本来从postfix日志中提取消息ID,但是日志可以包含不同的日期戳,因此字段数可以不同,因此awk'{print $ 6}'这是消息ID字段不起作用时间和我听说SED也更快。

因此,我需要从日志的每一行获得的唯一数据是ID:

7B01038BFDB

cat mail.log | grep 'postfix' | grep -i email@address.com | sed -n 's/.*[0-9A-Z]{11}:*/\1/p'

但这个正则表达式不起作用。

1 个答案:

答案 0 :(得分:1)

您需要将sed模式调整为

sed  's/.*\([0-9A-Z]\{11\}\):.*/\1/'
          ^^        ^^  ^^^^ ^^

要使用反向引用,您需要使用\(...\)定义捕获组,并且还必须在BRE POSIX中转义范围量词。此外,模式应以.*结尾以匹配行的其余部分。