膨大なデータから1/n行抽出するとか

グラフ化とかするときに数十万単位のデータはそのままだと扱いづらいので、1/1000に抽出したりします。

単に分母行毎に出力しているだけですが、地味によくやります。

#!/bin/ksh

DENOM=1000      # 分母
TARGET_FILE=${1}
OUTPUT_FILE=${TARGET_FILE}.per${DENOM}.out

cat /dev/null > ${OUTPUT_FILE}

i=0
cat ${TARGET_FILE} | while read LINE
do
  let i=${i}+1
  if [ ${i} -ge {$DENOM} ]; then
    echo ${LINE} >> ${OUTPUT_FILE}
    i=0
  fi
done