GNU/Linux >> Znalost Linux >  >> Linux

unix - hlava A konec souboru

Můžete jednoduše:

(head; tail) < file.txt

A pokud z nějakého důvodu potřebujete použít potrubí, pak takto:

cat file.txt | (head; tail)

Poznámka:vytiskne duplicitní řádky, pokud je počet řádků v souboru.txt menší než výchozí řádky hlavy + výchozí řádky konce.


Pro čistý stream (např. výstup z příkazu) můžete použít „tee“ k rozvětvení streamu a poslat jeden proud do hlavy a jeden do konce. To vyžaduje použití buď funkce '>( seznam )' bash (+ /dev/fd/N):

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

nebo pomocí /dev/fd/N (nebo /dev/stderr) plus subshells s komplikovaným přesměrováním:

( ( 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

(Ani jedno z toho nebude fungovat v csh ani tcsh.)

Pro něco s trochu lepším ovládáním můžete použít tento příkaz perlu:

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

ed je standard text editor

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

Linux
  1. Příkazy hlavy a ocasu v Linuxu vysvětleny s příklady

  2. Linux – Rozumíte unixovým oprávněním a typům souborů?

  3. Oprávnění a ukládání souborů?

  1. Přesměrování a výstup potrubí?

  2. Io Redirection and the Head Command?

  3. Grep And Tail -f?

  1. Příklady příkazů Linux tail

  2. Jak povolím indexování souborů a adresářů Apache v systému Linux nebo UNIX?

  3. UNIX / Linux:Jak používat Sticky Bit na adresář a soubor