Как установить Седла и Строки для Подпроцесса

Используя демонстрационные данные, отправленные ДМИТРИЙ МАЛИКОВ...

$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin

Я предпочитаю использовать pcre с grep, таким образом, я использую переключатель-P для grep (должен быть GNU grep). Второй grep является чистым сахаром, чтобы дать Вам слова без пробела. Это также "удалило" бы пустые строки.

3
19.12.2012, 18:37
2 ответа

Следующее позволит Вам настроить количество строк и седел tput возвраты

export LINES=1000
export COLUMNS=1000
2
27.01.2020, 21:24

Чтение исходного текста было бы окончательным, но для слабонервных подойдет руководство. Если нет опции командной строки, база данных терминала в сочетании с переменными окружения обеспечит ваш скрипт всем необходимым:

  • На странице tput руководства не упоминаются переменные окружения.
  • Но в разделе See Also она отсылает вас к curs_termcap(3x), руководству по интерфейсу (функциям) termcap.
  • На этой странице Formatting Capabilities имеет значение, указывая на tputs на curs_terminfo(3x) странице.
  • И снова (см. Output Functions) нет явного упоминания о переменных окружения.

В поисках просветления можно обратиться к странице руководства ncurses.

  • В разделе Environment перечислены 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, но вам придется немного почитать.

1
27.01.2020, 21:24

Теги

Похожие вопросы