1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| | #compdef head ghead
local curcontext=$curcontext state state_descr line expl opts args ret=1
typeset -A opt_args
if _pick_variant gnu=GNU unix --version; then
args=(
'(-n --lines -c --bytes)'{-c+,--bytes=}'[print the first (or with -, all but the last) specified bytes]:number of bytes:->number'
'(-n --lines -c --bytes)'{-n+,--lines=}'[print the first (or with -, all but the last) specified lines]:number of lines:->number'
'(-q --quiet --silent -v --verbose)'{-q,--quiet,--silent}'[never print headers giving file names]'
'(-q --quiet --silent -v --verbose)'{-v,--verbose}'[always print headers giving file names]'
'(-z --zero-terminated)'{-z,--zero-terminated}'[line delimiter is NUL, not newline]'
'(- *)--help[display help and exit]'
'(- *)--version[output version information and exit]'
)
else
opts=(-A '-*')
args=( '(-c)-n+[display the first specified lines]:number of lines' )
case $OSTYPE in
(freebsd*|darwin*|dragonfly*|netbsd*)
args+=( '(-n)-c+[display the first specified bytes]:number of bytes' )
;|
dragonfly*|netbsd*)
args+=(
'(-v)-q[never print headers giving file names]'
'(-q)-v[always print headers giving file names]'
)
;;
esac
fi
_arguments -C -s -S $opts : $args '*:file:_files' && return 0
case $state in
(number)
local alts
[[ -z $PREFIX ]] && alts=(
'sign:sign:((-\:"print all but the last specified bytes/lines" +\:"print the first specified bytes/lines (default)"))'
)
compset -P '+'
alts+=( 'numbers: :_numbers -N $state_descr b\:512 K\:1024 KB\:1000 M\:1024\^2 MB\:1000\^2 G\:1024\^3 GB\:1000\^3 T\:1024\^4 TB\:1000\^4' )
_alternative $alts && ret=0
;;
esac
return ret
|