Comment detail

アレイのuniq (Nested Flatten)

シェルスクリプトでこういうのを書きたくなる場面ってよくありますよね。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

declare -a result
declare rsize

ordered_uniq(){
  local n
  result=()
  rsize=0
  for i in $*
  do
    n=_$i
    if [[ "${!n}" = "" ]]; then
      local _$i=1
      result[$((rsize++))]=$i
    fi
  done
}
ordered_uniq 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9
echo ${result[@]}

Index

Feed

Other

Link

Pathtraq

loading...