From 625bc386733ecffb93d88626917596060fdc1f4e Mon Sep 17 00:00:00 2001 From: motius Date: Wed, 9 Aug 2017 15:29:14 +0200 Subject: [PATCH] see content of FILE from line to line --- shell/from2.sh | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 shell/from2.sh diff --git a/shell/from2.sh b/shell/from2.sh new file mode 100755 index 0000000..188e8be --- /dev/null +++ b/shell/from2.sh @@ -0,0 +1,49 @@ +#!/bin/bash +################################################################################ +# 'from2.sh', created by motius, on 2017-08-03 +################################################################################ + +# vars +USAGE="usage: from2 " +CAT=/bin/cat +HEAD=/usr/bin/head +TAIL=/usr/bin/tail +WC=/usr/bin/wc + + +################################################################################ +# test number of arguments +[ $# -ne 3 ] && echo "${USAGE}" && exit 1 + +# test if file +[ -f "${1}" ] || exit 2 + + +################################################################################ +# test numbers +case "${2}" in + ''|*[!0-9]*) exit 3 ;; +esac +case "${3}" in + ''|*[!0-9]*) exit 4 ;; +esac + +# test if $2 <= $3 +[ "${2}" -gt "${3}" ] && exit 5 + + +################################################################################ +# test if enough lines +LINES=$(${WC} -l "${1}" | cut -d ' ' -f1) +[ "${LINES}" -lt "${2}" ] && exit 6 + + +################################################################################ +# run +${CAT} "${1}" | ${HEAD} -n "${3}" | ${TAIL} -n $(($3-$2+1)) + + +################################################################################ +# EOF 'from2.sh' +################################################################################ +