On Fre, 17 Jan 2003 at 19:41 (+0100), David Haller wrote: [...]
Aber eigentlich kann man ja sowas per 'head -N datei; tail -N datei' machen...
ACK
,----[ ~/bin/headntail ] | #!/bin/sh | exec 3>/dev/stdout | test -n "$IN" && unset IN | case "$#" in | 0) N="-10"; IN="/dev/stdin";; | 1) case "$1" in | -*) N="$1"; IN="/dev/stdin";; | *) N="-10";; | esac;; | *) case "$1" in | -*) N="$1"; shift;; | *) N="-10";; | esac;; | esac | test -n "$IN" && set -- "$IN" | for f in "$@"; do | ( cat "$f" | tee /dev/stderr | head $N 1>&3 ) 2>&1 | tail $N | done `----
David, nebenbei bemerkt: Du hast Dir da eine ziemlich üble Angewohnheit zum Markieren von Codeschnipseln abgeschaut. Du verhinderst damit zuverlässig ein einfaches Copy & Paste :-(
$ cat /tmp/rpmlist | headntail -1 Mon 16 Aug 1999 07:19:26 PM CEST bc-1.04 Thu 12 Dec 2002 01:09:28 AM CET kbd-1.06
Das bringt bei mir: jan@k500:~/tmp> cat datei | ./do1 -3 Sam 13 Apr 2002 20:12:48 CEST aaa_base-2002.3.27 Sam 13 Apr 2002 20:12:53 CEST aaa_dir-2002.3.13 Sam 13 Apr 2002 20:12:54 CEST aaa_version-2002.3.20 Son 13 Okt 2002 01:08:07 CEST perl-PerlMagick-5.4.2 Son 15 Dez 2002 01:54:06 CET samba-2.2.3a tee: Schreibfehler Ich verstehe auch nicht, warum das so kompliziert sein muss. Ich würde das so machen (ich habe mich mal auf rudimentäres Fehlerhandling beschränkt): jan@k500:~/tmp> cat do2 #! /bin/bash [ -r "$1" ] || exit 1 if [ -z "$2" ]; then n=3 else n=$2 fi head -n $n "$1" tail -n $n "$1" jan@k500:~/tmp> ./do2 datei 3 Sam 13 Apr 2002 20:12:48 CEST aaa_base-2002.3.27 Sam 13 Apr 2002 20:12:53 CEST aaa_dir-2002.3.13 Sam 13 Apr 2002 20:12:54 CEST aaa_version-2002.3.20 Son 13 Okt 2002 01:07:59 CEST ImageMagick-devel-5.4.2 Son 13 Okt 2002 01:08:07 CEST perl-PerlMagick-5.4.2 Son 15 Dez 2002 01:54:06 CET samba-2.2.3a Jan