【问题标题】:Remove duplicates from Arp-Scan Bash output从 Arp-Scan Bash 输出中删除重复项
【发布时间】:2015-04-11 00:11:56
【问题描述】:

我需要一种方法来从此 IP 列表中删除重复项。

arp-scan -I usb0 --file=ClassB.txt -N -r 1 --interval=50 | grep -E '([a-f0-9]{2}:){5}[a-f0-9]{2}' | awk '{print $1}' > IPList.txt

我有什么想法或方向吗? 我需要为我拥有的另一个脚本收集 IP 列表。

谢谢!

【问题讨论】:

    标签: linux bash awk


    【解决方案1】:

    使用sort -u 仅打印唯一行:

    arp-scan ...  | awk '/([a-f0-9]{2}:){5}[a-f0-9]{2}/{print $1}' | sort -u  > IPList.txt
    

    作为奖励,我删除了您的 grep | awk 管道,因为 awk 完全能够自己匹配模式。

    你甚至可以在 awk 中完成所有事情:

    arp-scan ...  | awk '/([a-f0-9]{2}:){5}[a-f0-9]{2}/&&!seen[$1]++{print $1}' > IPList.txt
    

    这只会在第一个字段尚未添加到数组seen 时打印,因为!seen[$1]++ 只会为真一次。

    【讨论】:

    • 谢谢!我已将此标记为答案。有没有办法在脚本运行时将结果输出到屏幕并将结果保存到文件中?
    • @Rob 您可以将输出通过管道传输到tee 以执行此操作
    猜你喜欢
    • 2023-03-15
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多