如何从文件中复制正则表达式匹配项?需要从日志文件中获取所有 MAC 个地址

How do I copy regex matches from a file? Need to get all MAC addresses from log file

我有一个 linux dhcpd 日志,我需要获取仅包含 MAC 个地址的列表。 MAC 地址的格式类似于 00:ab:27:d8:dd:dd

使用linux命令行工具,解析MAC地址的INPUT文件并发送到OUTPUT文件。其中输出文件只是 MAC 地址的列表,然后可以删除重复的 MAC 地址。

我怀疑这可能是一个多步骤的复杂命令。我已经搜索了该站点,但找不到与复制正则表达式搜索结果相匹配的内容。我得到的正则表达式甚至可以找到文件中的 MAC 地址,结果好坏参半,更不用说将所有正确的匹配项复制到文件中了。

您可以使用以下命令提取唯一的 MAC 地址:

grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'  /var/log/dhcpd.log | uniq > unique_MAC.txt

说明:

  • 这将从日志中检索 MAC 地址:

grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'

  • uniq 命令将删除所有重复的 MAC 地址:

uniq

参考文献:
grep
uniq