37 lines
709 B
Bash
Executable File
37 lines
709 B
Bash
Executable File
#!/usr/bin/env zsh
|
|
|
|
zmodload zsh/zutil
|
|
|
|
local -A headers range query expect
|
|
|
|
# -h: lines of headers
|
|
# -n: selection index, if it is QUERY, query string will be used
|
|
# -q: query string
|
|
# -e: expect key
|
|
zparseopts -E h:=headers n:=range q:=query e:=expect
|
|
|
|
print -r -- "${query//\"/}"
|
|
print -r -- "$expect"
|
|
print -r -- "<QUERY>${query//\"/}</QUERY>" >&2
|
|
|
|
local -a lines=()
|
|
while read input; do
|
|
lines+=(${input%$'\033[00m'})
|
|
done
|
|
|
|
for ((i = 1; i <= headers; i++)); do
|
|
print -r -- $lines[i] >&2
|
|
done
|
|
|
|
lines[1,headers]=()
|
|
|
|
for i in {1..$#lines}; do
|
|
print -r -- ${lines[i]//$'\0'}"<EC>" >&2
|
|
done
|
|
|
|
if [[ $range != QUERY ]]; then
|
|
for i in ${(s:,:)range}; do
|
|
print -r -- $lines[i]
|
|
done
|
|
fi
|