Используя демонстрационные данные, отправленные ДМИТРИЙ МАЛИКОВ...
$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin
Я предпочитаю использовать pcre с grep, таким образом, я использую переключатель-P для grep (должен быть GNU grep). Второй grep является чистым сахаром, чтобы дать Вам слова без пробела. Это также "удалило" бы пустые строки.
Следующее позволит Вам настроить количество строк и седел tput возвраты
export LINES=1000
export COLUMNS=1000
Чтение исходного текста было бы окончательным, но для слабонервных подойдет руководство. Если нет опции командной строки, база данных терминала в сочетании с переменными окружения обеспечит ваш скрипт всем необходимым:
tput
руководства не упоминаются переменные окружения. tputs
на curs_terminfo(3x)
странице. В поисках просветления можно обратиться к странице руководства ncurses.
LINES
и COLUMNS
. LINES
просто говорится, что нужно посмотреть COLUMNS
. COLUMNS
дает больше информации:Укажите ширину экрана в символах. Приложения, работающие в оконной среде, обычно могут получить ширину окна, в котором они выполняются. Если ни значение
COLUMNS
, ни размер экрана терминала не доступны,укажите ширину экрана. ни размер экрана терминала, ncurses использует размер, который может быть указан в базе данных terminfo (terminfo). быть указан в базе данных terminfo (т.е.
cols
возможность).
Теперь, для этого вопроса, было бы неплохо, если бы страница руководства была более прямой, говоря, что tput
использует tputs
для вывода, а также использует setupterm
для инициализации. Иногда (когда эта информация легко доступна в журнале изменений) никто не замечает, что она не указана в руководстве в явном виде. Например, этот пункт из 2002:
+ modify setupterm() to ensure that it initializes the baudrate, for
applications such as tput (report by Frank Henigman).
Возвращаясь к теме:
curs_terminfo(3x)
описывается setupterm
, отмечаетсяuse_env
не был вызван, setupterm
позволяет переменным LINES
и COLUMNS
переопределять значения базы данных терминала. use_env
руководства это подтверждается, а также отмечается, что значения могут быть получены из операционной системы. Опять же, в журнале изменений упоминается, что tput
делает это (получает значения из операционной системы), например, это из 2007:
+ восстановление вызова для получения размера экрана в _nc_setupterm(), который
используется в tput и других неэкранных приложениях через setupterm()
(Debian #433357, сообщили Florent Bayle, Christian Ohm,
cf: 20070310).
В целом, существующая документация дает ответы почти на все вопросы о поведении ncurses, но вам придется немного почитать.