Почему grep изменяет длину выходных строк?

Я часто использую dpkg или aptitude сочетании с grep когда хочу перечислить некоторые пакеты, доступные или установленные в моей системе, но я заметил, что когда я добавляю | grep | grep , выходные линии выглядят несколько иначе.

Вот чистый вывод dpkg , первая команда была введена, когда терминал был меньше, второй – когда терминал был максимизирован:

экран

Как вы можете видеть, выход отличается в зависимости от размера окна – пространство уменьшается в случае меньшего размера.

Теперь, что происходит, когда мы добавляем | grep | grep :

экран

Часть первого выхода была сброшена во вторую строку. Но когда я максимизировал терминал и набрал команду еще раз, линия находится в одном куске. Более того, столбцы имеют одинаковый фиксированный размер (те же промежутки между ними).

Это выход производительности:

экран

Обе команды были введены в максимально развернутом окне, но строка grep имеет более узкие столбцы, а некоторый текст третьего столбца был отключен.

Почему это происходит? Есть ли способ остановить grep от изменения размеров линий?

Я не знаю, как добавить изображение без изменения его параметров, надеюсь, вы видите, о чем я говорю.

One Solution collect form web for “Почему grep изменяет длину выходных строк?”

Это не grep изменяющий выход. Это dpkg и aptitude . Они проверяют, идет ли выход на терминал или на какую-либо другую команду.

Если это терминал, они адаптируют свою собственную ширину вывода в соответствии с размером терминала.

Если выход не переходит к терминалу, команда не знает, какой размер столбца будет уместен. (Результат может также завершиться в каком-то файле.)

То же самое происходит с ls . Сравнить ls и ls|cat .


Существует нет общего способа решения этой проблемы, но некоторые команды могут иметь определенные варианты для этого. Например aptitude имеет --disable-columns и -w :

  --disable-columns This option causes aptitude search and aptitude versions to output their results without any special formatting. In particular: normally aptitude will add whitespace or truncate search results in an attempt to fit its results into vertical “columns”. With this flag, each line will be formed by replacing any format escapes in the format string with the corresponding text; column widths will be ignored. -w <width>, --width <width> Specify the display width which should be used for output from the search command (by default, the terminal width is used). 

Страница man dpkg говорит:

  COLUMNS Sets the number of columns dpkg should use when displaying formatted text. Currently only used by -l. 
  • Список установленных программ без запуска программы в системе
  • Ошибка: неправильная архитектура 'amd64' & Не удается найти пакет libc6-dev-i386
  • В Debian, какой пакет отвечает за создание / etc / default / grub?
  • Отладка dpkg сбой конфигурации с grub
  • список всех пакетов, из которых распространяется
  • Как удалить Dropbox
  • Сохранение дискового пространства в виртуальных машинах
  • Как удалить программное обеспечение, установленное dpkg -i FILE.deb?
  • Как сгенерировать пакет deb без компиляции
  • Linux Debain Squeezy Distro: Weakerth4n, Kconfig && делают проблемы
  • Найти источник всех установленных пакетов в системах на базе Debian
  • dpkg жалуется на отсутствующий пакет, который уже установлен
  • Interesting Posts

    Как подсчитать вхождения каждого слова, принадлежащего файлу, во все количество файлов `n`, переданных в качестве аргументов?

    Как я могу применять квоты в перемещаемых профилях пользователей с помощью samba?

    Калибровка и параметры калибровки

    Карта Home to External Drive

    Канонический способ имитации файлового менеджера «открыть элемент» из командной строки

    Alt-Left для пропуска слов не работает в эмуляторах терминалов

    Список файлов с указанием количества строк и даты

    Как файлы с защитой от ненадежного приложения защищены в Linux

    Как объединить информацию каждой пары строк в одну строку?

    Будут ли компилировать модули make-kpkg?

    Экспорт переменных из Read

    открытие порта 7 (порт эха) на Linux / Debian

    Как сделать загрузочный ISO-образ UEFI с grub-mkrescue?

    Имеется ли в системе центральный репозиторий ключей SSH? Использует ли SSH keygen закрытый ключ в этом месте?

    Privoxy / VPN / удаленный прокси

    Linux и Unix - лучшая ОС в мире.