删除重复的条目并将其替换为逗号| 重击

用户334662

我有一个文件,其中包含IP地址和端口号的顺序为:

ipaddress:端口

1.1.1.1:21
1.1.1.1:22
2.2.2.2:443
3.3.3.3:80
3.3.3.3:443

我需要以下格式

ipaddress的结果:port,port

1.1.1.1:21,22
2.2.2.2:443
3.3.3.3:80,443

库萨兰达

假设输入文件中的行上没有尾随空格:

$ awk -F ':' 'BEGIN { OFS=FS } $1 in ports { ports[$1] = ports[$1] "," $2; next } { ports[$1] = $2 } END { for (ip in ports) print ip, ports[ip] }' file
3.3.3.3:80,443
1.1.1.1:21,22
2.2.2.2:443

awk脚本,

BEGIN       { OFS=FS }
$1 in ports { ports[$1] = ports[$1] "," $2; next }
            { ports[$1] = $2 }
END         { for (ip in ports) print ip, ports[ip] }

首先将输出字段分隔符设置为与输入字段分隔符相同,它是一个:字符(在命令行中用给出-F ':'),然后它将测试当前的第一个字段(IP地址)是否为的ports阵列。如果是的话,端口号(第二个字段)将以逗号作为分隔符添加到该阵列条目。如果不是,则仅将阵列中的条目设置为该IP地址的端口号。

最后,所有存储的IP地址都将打印出其收集的端口号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章