2015-04-22 70 views
1

我需要一個新的陣列還是從實際陣列只是刪除重複的元素,獨特/否Duplicted值殼牌陣列的Linux

#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,set -A(在我的linux上不工作),但是沒有運氣,有沒有辦法創建一個唯一的值數組?

+0

它聲明-A表示關聯數組不是'set -A',它需要bash 4+。 –

回答

1
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 
+0

謝謝,它的工作原理,但使用逗號分隔,事情是這個ips已經在陣列「ips_networks」,所以如果作出迴應它將是這樣的: 10.30.10.010.30.10.010.30.20.010.30.20.010.30 .20.0 – Ivor