n=0
while read line; do
n=$((n+1))
if [ $n -gt 10 ]; then
echo $line
fi
done < $infile
Kaum besser:
CODE:
nl=$(wc -l < $infile)
tail -n $((nl-10)) $infile
Richtig:
CODE:
awk '(NR > 10)' $infile
Und warum? Weil die erste Lösung in der Schleife viel zu schlecht performed und die Ausgabe der aktuellen Zeile ohne Anführungszeichen neben anderen Dingen z.B. auch führende Leerzeichen frisst. Die zweite Lösung mit einer arbeitet wieder mal mit einer Subshell. Die dritte Lösung hingegen ist deutlich flexibler - dazu schreibe ich morgen nochmal was, glaube ich. Und jetzt zu dem eigentlichen Grund, warum ihr diesen Artikel lest: Es wird Zeit für Frühsport!