[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tee für die letzten N Zeilen



hi,
erstmal Kaffee.

Am 22. März 2014 16:15 schrieb Michael Schuerig <michael.lists@schuerig.de>:
>
> Ich möchte in einer Pipe die Ausgabe der vorhergehenden Stufe in eine
> Datei schreiben, wobei ich aber immer nur die jeweils letzten N Zeilen
> behalten will.
>
> Den ersten Teil kann tee natürlich. Für den zweiten habe ich kein
> Werkzeug gefunden. Ich habe mir ein Skript gebastelt (s.u.), das die
> gewünschte Funktionalität durch rotierte Ausgabedateien angenähert
> erreicht. Allerdings ist es sprachbedingt(?) langsam, ein Rohr mit viel
> und schnellem Durchfluss würde dadurch möglicherweise gebremst.
>
> Falls die Performance jemals ein Problem werden sollte könnte ich die
> Funktionalität dann in Perl/Python/Ruby/C implementieren. Aber
> vielleicht gibt es das ja schon.
>
> Michael
>
>
> #! /bin/bash -e
>
> out=
> lines=10000
> keep=2
>
> usage() {
>   echo "$0 [ -l <lines> | --lines <lines> ] [ -k <chunks> | --keep
> <chunks> ] <output file>"
> }
>
> while (( $# > 1 )); do
>   case "$1" in
>     --lines|-l)
>       lines="$2"
>       shift 2
>       ;;
>     --keep|-k)
>       keep="$2"
>       shift 2
>       ;;
>     --help|-h)
>       usage
>       exit 0
>       ;;
>     *)
>       usage
>       exit 1
>       ;;
>   esac
> done
>
> out="$1"
>
> if [[ -z $out ]] || [[ -z $lines ]] || [[ -z $keep ]]; then
>   usage
>   exit 1
> fi
>
> exec 4> "$out"
>
> i=0
> while read l; do
>   (( i += 1 ))
>   echo "$l" >&4
>   echo "$l"
>   if (( $i >= $n )); then
>     savelog -q -c "$k" -l "$out"
>     i=0
>   fi
> done
>
> exec 4>&-
>
> exit 0
>
>
> --
> Michael Schuerig
> mailto:michael@schuerig.de
> http://www.schuerig.de/michael/
>
>
> --
> Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-REQUEST@lists.debian.org
> mit dem Subject "unsubscribe". Probleme? Mail an listmaster@lists.debian.org (engl)
> Archive: [🔎] 3668868.bWtkN5jk8l@fuchsia">https://lists.debian.org/[🔎] 3668868.bWtkN5jk8l@fuchsia
>


Reply to: