sed/awk + ​​regex删除第一个字段匹配的重复行(ip地址)

rea*_*der 3 ip awk sed match

我需要一个解决方案来删除第一个字段是IPv4地址的重复行.例如,我在文件中有以下行:

192.168.0.1/text1/text2
192.168.0.18/text03/text7
192.168.0.15/sometext/sometext
192.168.0.1/text100/ntext
192.168.0.23/othertext/sometext
Run Code Online (Sandbox Code Playgroud)

因此,在上一个场景中它匹配的只是IP地址.我所知道的是IP地址的正则表达式是:

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Run Code Online (Sandbox Code Playgroud)

如果解决方案是一条线并且尽可能快,那将是很好的.

Arj*_*kar 6

如果,该文件包含您显示的格式的行,即第一个字段始终是IP地址,您可以使用1行awk:

awk '!x[$1]++' FS="/" $PATH_TO_FILE
Run Code Online (Sandbox Code Playgroud)

编辑:这将基于IP地址删除重复项.当我写这个答案时,我不确定这是OP想要的.