arrays - Shell Array Linux 中的唯一/无重复值

标签 arrays linux shell duplicates unique

我需要创建一个新数组,或者只是从实际数组中删除重复元素,

#The NTP IPS are the following ones:
#10.30.10.0, 10.30.10.0, 10.30.20.0, 10.30.20.0, 10.30.20.0

#!/bin/bash
ips_networks=()
for ip in ${ips_for_ntp[@]};do
    ips_networks+=${ip%.*}.0
done

所以我会得到具有重复ip的ips_networks,但我只需要将每个ip中的一个放入另一个数组或相同的数组中,我尝试使用awk,设置-A(在我的linux上不起作用),剪切但没有运气好,有没有办法制作一个唯一值数组?

最佳答案

ips="10.30.10.0, 10.30.10.0, 10.30.20.0, 10.30.20.0, 10.30.20.0"
unique_ips=`echo $ips | sed -e "s/\s\\+//g" | sed -e "s/,/\\n/g"| sort | uniq`
echo $unique_ips #10.30.10.0 10.30.20.0

关于arrays - Shell Array Linux 中的唯一/无重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29798299/

相关文章:

linux - 将文件内容传递给 docker exec

php - shell_exec 不返回与 sudoed 命令行相同的结果

路径名称上带有空格的 Java Runtime Exec

java - 只打印那些是 Java 数组中另一个数字的两倍的数字

arrays - 如何用C实现埃拉托色尼筛法算法?

java - 如何将参数从控制台传递给不同的方法?

linux - sudo 用户的 Ansible env 变量不同

c++ - 混淆 C++ STL 容器 [] 运算符和默认值

linux - 在 Linux 中的临时网络上托管 Web 应用程序

shell - 从部署在cloudfoundry上的spring web应用程序执行shell脚本