Sed删除由包括关键字的行指示的MAC地址



我正在处理文件中包含特定字符的行中的MAC地址模糊处理。但是,我只想在"event"关键字指示的行中删除它。对我来说,困难的是在"偶数"关键字和MAC地址之间会有随机长度的关键字(包括数字和字母(。所以我用代替

[random length combinations of words, numbers, potentially punctuation or space] "event" [random length combinations of words, numbers, potentially punctuation or space] "xx:xx:xx:xx:xx:xx" [random length combinations of words, numbers, potentially punctuation, nothing at all or space] 

到"x"我只知道如何混淆MAC地址:

sed -E 's/'([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}')/ x /g'

但我不知道如何修改它来混淆特定的行。例如,我有一个文件input.txt:

[INFO] device 1 event - client connected with aa:bb:8a:de:8e:23
[ERROR] device 2 event - routing data to gg:7a:e3:89:2f:2f failed
[LOG] device 3 connected 
[INFO] connected to 2 devices. event: aa:bb:8a:de:8e:23 success!

输出应该是:

[INFO] device 1 event - client connected with x
[ERROR] device 2 event - routing data to x failed
[LOG] device 3 connected 
[INFO] connected to 2 devices. event: x success!

这里有一个可能的sed解决方案,它允许event出现在线路上的任何位置,它必须是一个完整的单词(而不是像eventful那样的较长单词的一部分(,并且线路上可能有多个MAC地址,如果单词event出现在同一线路上,则所有MAC地址都必须被屏蔽。我也用xx:xx:xx:xx:xx:xx作为掩模,但你可以很容易地替换它。

我创建了以下用于测试的输入文件:

$ cat mac.input
[INFO] device 1 event - client connected with aa:bb:8a:de:8e:23
[ERROR] device 2 event - routing data to gg:7a:e3:89:2f:2f failed
[LOG] device 3 connected 
[INFO] connected to 2 devices. event: aa:bb:8a:de:8e:23 success!
[LINE] this was an eventful evening 22:33:22:33:22:33
[TWO MAC ADDRESSES] aa:bb:aa:33:dd:1f is event 99:33:00:23:43:83 good

正如我已经提到的,第二行上的"地址"将不会被屏蔽(即使存在单词event(,因为该地址不是一个以-g不是十六进制数字开头的有效MAC地址。[LINE]线上的地址不会被屏蔽,因为字event本身不存在(即使eventful存在(。在最后一行,有两个MAC地址,我都屏蔽了——甚至是出现在单词事件之前的那个。(我在一份评论中要求你澄清这种情况是否可能,如果可能,必须如何处理;在这里,我只是随机选择了一个选项来展示什么是可能的。(

下面是sed命令及其输出:

$ sed -E '/beventb/
>   s/([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}/xx:xx:xx:xx:xx:xx/g' mac.input 
[INFO] device 1 event - client connected with xx:xx:xx:xx:xx:xx
[ERROR] device 2 event - routing data to gg:7a:e3:89:2f:2f failed
[LOG] device 3 connected 
[INFO] connected to 2 devices. event: xx:xx:xx:xx:xx:xx success!
[LINE] this was an eventful evening 22:33:22:33:22:33
[TWO MAC ADDRESSES] xx:xx:xx:xx:xx:xx is event xx:xx:xx:xx:xx:xx good

最新更新