IPアドレスを並び替え、重複排除

2つの配列を結合し、重複排除する関数

キーワード「$keyword1, $keyword2」を指定し、対象のログファイル「$logfile」からIPアドレスを抽出して重複排除した配列を戻り値として返す。
最後にIPアドレスのリストをファイル「$outfile」に書き出す。

ログ上ではIPは以下の様になっている。
Sep 29 xx:xx:xx ~略~ fqdn[xxx.xxx.xxx.xxx]: ~略~

function get_iplist() {
        local l_array1=($(grep "${keyword1}" ${logfile} | \
                awk '{print $11}' | \
                sed -e 's/.*\[//' -e 's/\].*//'\
        ))

        local l_array2=($(grep "${keyword2}" ${logfile} | \
                awk '{print $10}' | \
                sed -e 's/.*\[//' -e 's/\].*//'\
        ))

        local l_ip_array=(
                $({
                        printf "%s\n" "${l_array1[@]}"
                        printf "%s\n" "${l_array2[@]}"
                } | sort --version-sort --unique)
        )
        echo "${l_ip_array[@]}"
}

ip_array=(`get_iplist`)
echo "Detect IP Count: ${#ip_array[@]}"

for i in ${ip_array[@]}; do
        echo "${i}"
done > ${outfile}

【参考URL】
引数を処理する
[bash] 配列をset(集合)として扱いたい
IPアドレスをsortコマンドで並び替える