head -num
er det samme som head -n num
i stedet for head -n -num
(hvor num
er et hvilket som helst tal)
Eksempel:
$ echo -e "a\nb\nc\nd"|head -1 a $ echo -e "a\nb\nc\nd"|head -n 1 a $ echo -e "a\nb\nc\nd"|head -n -1 a b c
Denne head -1
synes ikke at være dokumenteret hvor som helst.
$ head --help
Usage: head [OPTION]... [FILE]... Print the first 10 lines of each FILE to standard output. With more than one FILE, precede each with a header giving the file name. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -c, --bytes=[-]NUM print the first NUM bytes of each file; with the leading "-", print all but the last NUM bytes of each file -n, --lines=[-]NUM print the first NUM lines instead of the first 10; with the leading "-", print all but the last NUM lines of each file -q, --quiet, --silent never print headers giving file names -v, --verbose always print headers giving file names -z, --zero-terminated line delimiter is NUL, not newline --help display this help and exit --version output version information and exit NUM may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y. GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Full documentation at: <https://www.gnu.org/software/coreutils/head> or available locally via: info "(coreutils) head invocation"
Man-side til head
(på Fedora 28):
HEAD(1) User Commands HEAD(1) NAME head - output the first part of files SYNOPSIS head [OPTION]... [FILE]... DESCRIPTION Print the first 10 lines of each FILE to standard output. With more than one FILE, precede each with a header giving the file name. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -c, --bytes=[-]NUM print the first NUM bytes of each file; with the leading "-", print all but the last NUM bytes of each file -n, --lines=[-]NUM print the first NUM lines instead of the first 10; with the leading "-", print all but the last NUM lines of each file -q, --quiet, --silent never print headers giving file names -v, --verbose always print headers giving file names -z, --zero-terminated line delimiter is NUL, not newline --help display this help and exit --version output version information and exit NUM may have a multiplier suffix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y. AUTHOR Written by David MacKenzie and Jim Meyering. REPORTING BUGS GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Report head translation bugs to <https://translationproject.org/team/> COPYRIGHT Copyright © 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO tail(1) Full documentation at: <https://www.gnu.org/software/coreutils/head> or available locally via: info "(coreutils) head invocation" GNU coreutils 8.29 December 2017 HEAD(1)
Svar
Informationssiden og onlinemanualen til GNU head
indeholder denne del:
For kompatibilitet
head
understøtter også en forældet indstillingssyntaks-[NUM][bkm][cqv]
, som kun genkendes, hvis den først angives.
Ideen at head -1
er det samme som head -n 1
er, at bindestreg ikke er en mi nus-tegn, men en markør for en kommandolinjemulighed. Det er den sædvanlige brugerdefinerede: ting, der starter med bindestreger, er indstillinger, der styrer, hvordan man udfører behandling, andre ting på kommandolinjen er filnavne eller andre faktiske mål, der skal behandles. I dette tilfælde er det ikke en mulighed for et enkelt tegn men en stenografi for -n
, men det er stadig grundlæggende en mulighed og ikke et filnavn. I head +1
eller head 1
, +1
eller 1
tages dog som filnavne.
Et dobbelt bindestreg --
eller --something
har også en tydelig betydning i sig selv (--
) det stopper behandling af optioner, og når det efterfølges af noget andet, markerer det en GNU-stil lang mulighed. Så at have head --1
til head -n -1
ville ikke “t matche skik.
Hvis jeg skulle gætte, antager jeg, at den maleriske genvej til -n i
findes for positiv i
men ikke til negativ i
da det tidligere tilfælde er nyttigt oftere og lettere at implementere. (Desuden er standard head
er kun defineret for en positiv værdi af linjer.)
Kommentarer
- Se også den oprindelige UNIX-mand side: schillix.sourceforge.net/man/man1/head.1.html