#!/bin/sh # # $Id: range,v 1.2 2006/04/25 23:09:14 vogelke Exp $ # # print range of lines from a file or stdin. # usage: range start end [file] PATH=/bin:/usr/sbin export PATH tag=`basename $0` die () { echo "$*" >& 2 exit 1 } # Arguments case "$#" in 0|1) die "usage: $tag start end [file]" ;; *) start=$1; end=$2; shift; shift ;; esac test "$start" -le "$end" || die "usage: $tag: start line must be <= end line" # Build and execute sed command case "$#" in 0) sed -n -e "${start},${end}p" ;; *) for file in $*; do sed -n -e "${start},${end}p" $file done ;; esac exit 0