33 lines
578 B
Bash
Executable File
33 lines
578 B
Bash
Executable File
#!/usr/bin/env zsh
|
|
|
|
zmodload zsh/zutil
|
|
|
|
local -A headers range query
|
|
|
|
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
|