Linux
ksh + 從字元串中刪除數字
字元串 IP 包括一些 IP 地址編號,如下例所示
echo ${IP[*]} 192.9.200.1 192.9.200.2 192.9.200.3
是否可以從列表中刪除一些 IP 地址號(使用 ksh shell)?
例如
我想從字元串“IP”中刪除 IP - 192.9.200.2
所以我會得到以下
echo ${IP[*]} 192.9.200.1 192.9.200.3
IP=(192.9.200.1 192.9.200.2 192.9.200.3) remove=192.9.200.2 new=() for ip in "${IP[@]}"; do [[ $ip != $remove ]] && new+=($ip); done echo "${new[*]}"
192.9.200.1 192.9.200.3
或者
for ((i=0; i<${#IP[@]}; i++)); do [[ ${IP[i]} == $remove ]] && unset IP[i] done echo "${IP[*]}"
192.9.200.1 192.9.200.3
這是可能的,但由於它們沒有被散列,你必須遍歷每個元素:
i=0 for item in "${IP[@]}"; do if [ "$item" = 192.9.200.2 ]; then unset IP["$i"] break # Remove this if the item could appear more than once fi let i++ done