match-echotc
- #!/usr/local/bin/zsh
- #
- # match-echotc
- # sets the array "reply" with the termcap entries given in $TERMCAP.
- #
- # This sed script first removes the first termcap entry because it is
- # the name of the termcap entry. Then, in the loop 'start', it makes a
- # copy of the pattern space into the hold space, removes the first entry
- # from the hold space, leaves just the two-letter entry in the pattern space
- # (not its value), prints it if it isn't made up of just spaces and tabs,
- # replaces the pattern space with the slightly shortened hold space,
- # resets the replacement-checking by a dummy jump, then reads in the
- # next line of input if these are no colons left in the pattern space.
- # regardless, it jumps back to the 'start' label. When EOF is reached,
- # ends.
- local excl=!
- reply=( $(echo $TERMCAP | sed -n 's/[^:]*://
- :start
- h;s/^[^:]*://;x;s/^\([^=#:]*\).*$/\1/;/^[ ]*$/'$excl'p;g;t reset
- :reset
- s/:/:/;t start
- n;b start') )