Оператор перенаправления ограничивает столбцы - PullRequest
2 голосов
/ 04 октября 2011

Я запускаю следующую команду для просмотра списка пакетов, установленных на сервере.

$> dpkg -l

Это хорошо, но когда я делаю это

$> dpkg -l > list_of_packages_installed

Я получаю только 106 столбцов данных, а остальное обрезается. Таким образом, есть все строки, но не все данные по столбцам. Здесь должно быть что-то простое, чего мне не хватает?

1 Ответ

1 голос
/ 17 ноября 2011

За это действительно отвечает переменная COLUMN.Man-страница dpkg (8) содержится в разделе «ОКРУЖАЮЩАЯ СРЕДА»:

   COLUMNS
         Sets  the number of columns dpkg should use when display-
         ing formatted text. Currently only used by -l.

, если в вашей среде установлена ​​COLUMNS, тогда dpkg будет использовать ее.С помощью этой команды вы можете проверить:

env | grep ^COLUMNS=

, выводит ли эта команда что-то вроде

COLUMNS=80

, тогда вы знаете, что эта переменная установлена ​​в вашей среде.Обратите внимание, что эта команда:

echo $COLUMNS

не сообщает вам, является ли она переменной среды или оболочки.COLUMNS можно установить как переменную оболочки без экспорта в среду.С помощью этой команды:

COLUMNS=$COLUMNS dpkg -l > k

вы явно поместите переменную в среду dpkg.Если это не было в вашей среде, то это будет только для этой команды.Также обратите внимание, что поведение dpkg в этом отношении отличается между Ubuntu и Debian, а также зависит от версии.По этой теме было несколько сообщений об ошибках.Например, команда dpkg в squeeze установит ширину столбца, чтобы все имена пакетов и версия могли отображаться полностью, если в среде не задано значение COLUMNS и вывод не является tty.

С уважением

...