Я часто использую dpkg
или aptitude
комбинирую с, grep
когда хочу перечислить определенные пакеты, доступные или установленные в моей системе, но я заметил, что при добавлении | grep
строки вывода выглядят немного по-другому.
Вот чистый dpkg
вывод, первая команда была введена , когда терминал был меньше, вторая, когда терминал был развернут:
Как видите, вывод отличается в зависимости от размера окна - пробелы уменьшаются в случае меньшего.
Теперь, что происходит, когда мы добавляем | grep
:
Часть первого вывода была перенесена на вторую строку. Но когда я развернул терминал и набрал команду еще раз, строка оказалась цельной. Кроме того, столбцы имеют одинаковый фиксированный размер (одинаковые промежутки между ними).
Это aptitude
вывод:
Обе команды были введены в развернутом окне, но в grep
строке есть более узкие столбцы, и часть текста третьего столбца была обрезана.
Почему это происходит? Есть ли способ остановить grep
изменение размеров линий?
Я не знаю, как добавить изображение без изменения его параметров, надеюсь, вы понимаете, о чем я говорю.
|
и других команд?|
- это что-то внутри вашей оболочки, изменяющее вывод из терминала на новый дескриптор, который устанавливается как ввод для второй команды. Первая команда сама может только проверить, является ли ее вывод терминалом или нет. Некоторые команды могут поддерживать параметры командной строки для явного задания ширины или могут проверять переменную среды $ COLUMNS. Но это полностью зависит от самой команды.aptitude
по-w
выбору, она работает, но это дает мне 2 дополнительных пустые строки между каждой нормальной линией. Что я могу с этим поделать? В случаеdpkg
этого можно использоватьCOLUMNS
переменную -COLUMNS=100 dpkg -l test | grep test
, но это работает только в случаеdpkg
,aptitude
игнорирует ее.aptitude -k $COLUMNS
все должно быть в порядке.aptitude -w $COLUMNS
.