head -num
はivではなくhead -n num
と同じですid = “b8f09f62ea”>
(num
は任意の番号です)
例:
$ 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
このhead -1
はどこにも文書化されていないようです。
$ 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"
head
のマニュアルページ(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)
回答
情報ページとオンラインマニュアル GNU head
には次の部分が含まれています:
互換性のために
head
また、廃止されたオプション構文-[NUM][bkm][cqv]
もサポートしています。これは、最初に指定された場合にのみ認識されます。
アイデアhead -1
はhead -n 1
と同じです。ダッシュはmiではありません。 nus記号ですが、コマンドラインオプションのマーカーです。これは通常の習慣です。ダッシュで始まるものは処理方法を制御するオプションであり、コマンドラインの他のものはファイル名または処理する他の実際のターゲットです。この場合、それは1文字のオプションではありません。ただし、-n
の省略形ですが、基本的にはオプションであり、ファイル名ではありません。head +1
または、+1
または1
はファイル名として使用されます。
二重ダッシュ--
または--something
も、それ自体で明確な意味を持ちます(--
)オプションの処理を停止し、その後に何か他のものが続くと、GNUスタイルの長いオプションをマークします。したがって、head -n -1
にhead --1
を指定しても意味がありません。カスタムに一致します。
推測すると、-n i
の趣のあるショートカットは正のi
には存在すると思いますが、存在しません負のi
の場合、前者の場合はより頻繁に、より簡単に実装できるためです(さらに、標準のhead
は、正の値の行に対してのみ定義されます。)
コメント
- 元のUNIXmanも参照してください。ページ: schillix.sourceforge.net/man/man1/head.1.html