なんでもかんでもシェルでやってしまおうとすると、配列を扱うことが多くなり、配列による複雑な処理が増えてきます。
配列全体を表示する時は、echo ${HOGE[*]} としたりするのですが、そうすると配列の要素がブランク区切りで表示されます。
echo ${HOGE[*]}いろんな処理をしていると、重複した要素をまとめたいことがあります。また、要素をソートしたい場合もあります。以下、それらの方法です。
a b c d e f g h i j k 1 1 1 1 2 2 2 a b c x y z
- 重複した要素をまとめる
sort と uniq を使いたいので、配列の要素列をスペースを改行に変換します。HOGE2=(`echo ${HOGE[*]} | sed 's/\s/\n/g' | sort | uniq`)
- 要素をソートする
1.の例とほとんど同じで、uniqが無いだけです。HOGE2=(`echo ${HOGE[*]} | sed 's/\s/\n/g' | sort`)
0 件のコメント:
コメントを投稿