脳みそおどる

日常とか仕事のこととかいろいろ

等間隔で行を飛ばしてファイルの中身を出力

ファイルが行数が多くなりすぎたときとかしたときに使うシェルスクリプト
等間隔ごとに行を出力する。
引数に元ファイルを渡してあげればいい。
1,11,21,…行目が出力される。

#!/bin/sh
# Usage:
# ./[command] file
MAXLINE=`wc -l ${1}`
cnt=1
INTV=10
while [ ${cnt} -le ${MAXLINE} ]
do
    sed -n "${cnt},${cnt}p" ${1} >> ${1}.out${INTV}
    cnt=`expr ${cnt} + ${INTV}`
done