Como usar certas linhas em um script?

0

a.sh

cat in|while read s
do call "$s"
done

Isso precisa ser modificado para que seja executado apenas por linhas arg + n. por exemplo: a.sh 5

    cat in|while read s
n=10
for lines arg0 through arg0+n
    do call "$s" 
    done
    
por user93200 28.09.2011 / 01:49

2 respostas

0

Vai ser mais rápido & limpador para filtrar a entrada até apenas as linhas relevantes antes de alimentá-la no loop de leitura:

n=10
start=$1
end=$((start+n))
cat in | sed "${start},${end}!d" | while read s; do
    call "$s"
done

Nota: as linhas de impressão de $ 1 a $ 1 + n linhas na verdade imprimem n + 1 linhas (por exemplo, as linhas de impressão de 5 a 15 são, na verdade, 11 linhas). Se você quiser imprimir n linhas a partir de $ 1, use end=$((start+n-1)) .

    
por 28.09.2011 / 04:41
0
lines=10
current=0
while read line; do
   current=current+1
   if [ "$current" -gt "$lines" ] then exit 0; fi
   if [ "$current" -gt "$1" ] then call "$line"; fi
done < in
    
por 28.09.2011 / 03:04

Tags