シェルスクリプトでcutの代わりに配列を使ってみたはなし

久々にシェルスクリプトを書いた。

こんなのを書いたら結構遅かった。
区切り文字がもともとスペースだったので配列にしてみたら大分早くなった。
#!/bin/sh
MIN=$1

while read i; do
  # 入力文字中のスペース区切りのn番目の数値を判定してフィルタリング
  VAL=`echo $i | cut -d " " -f 11`
  if [ $VAL -ge $MIN ]; then
    echo $i
  fi
done

#!/bin/sh
MIN=$1

while read i; do
  items=($i)
  if [ ${items[10]} -ge $MIN ]; then
    echo $i
  fi
done

そっかー、配列かー
シェルスクリプトの配列って扱いづらくて苦手の感じある。
分岐をなくせばもっと早くなりそうだけど、、、それはちょっと難しそう。

コメント

このブログの人気の投稿

inotify でファイル監視しようず!

「SQL実践入門」がとてもわかりやすい