GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Unix - Kopf UND Ende der Datei

Sie können einfach:

(head; tail) < file.txt

Und wenn Sie aus irgendeinem Grund Pipes verwenden müssen, dann so:

cat file.txt | (head; tail)

Hinweis:druckt doppelte Zeilen, wenn die Anzahl der Zeilen in file.txt kleiner ist als die Standardzeilen für den Kopf + die Standardzeilen für das Ende.


Für einen reinen Stream (z. B. die Ausgabe eines Befehls) können Sie „tee“ verwenden, um den Stream zu verzweigen und einen Stream an Head und einen an Tail zu senden. Dies erfordert entweder die Verwendung der '>( list )'-Funktion von bash (+ /dev/fd/N):

( COMMAND | tee /dev/fd/3 | head ) 3> >( tail )

oder mit /dev/fd/N (oder /dev/stderr) plus Subshells mit komplizierter Umleitung:

( ( seq 1 100 | tee /dev/fd/2 | head 1>&3 ) 2>&1 | tail ) 3>&1
( ( seq 1 100 | tee /dev/stderr | head 1>&3 ) 2>&1 | tail ) 3>&1

(Keines davon funktioniert in csh oder tcsh.)

Für etwas mit etwas besserer Kontrolle können Sie diesen Perl-Befehl verwenden:

COMMAND | perl -e 'my $size = 10; my @buf = (); while (<>) { print if $. <= $size; push(@buf, $_); if ( @buf > $size ) { shift(@buf); } } print "------\n"; print @buf;'

ed ist die standard text editor

$ echo -e '1+10,$-10d\n%p' | ed -s file.txt

Linux
  1. Dateiberechtigungen und Speichern?

  2. UNIX / Linux:So verwenden Sie Sticky Bit für Verzeichnis und Datei

  3. Zeigen Sie Dateien mit den Befehlen cat, more, tail, head und wc an

  4. Dateizugriffsbefehle in Linux – finden, sortieren, Kopf, Schwanz

  5. tail-Befehlsbeispiele in UNIX/Linux

DOS zu Unix:Befehle und Beispiele

8 Head-Befehlsbeispiele in Linux

Linux-Tail-Befehl

So konvertieren Sie eine Windows-Datei in eine UNIX-Datei

AWK-Befehl unter Linux/Unix

UNIX-Berechtigungen und Dateitypen verstehen