как сделать удар для не обертывания вывода?

Каждый раз, когда некоторая команда генерирует длинные линии, как произведено (например, когда ls -l папка, которая содержит файлы с длинными именами), длинные линии перенесены к следующей строке, таким образом портя структуру столбца.

Есть ли какой-либо способ избежать этого? Что-то сродни 'nowrap' опции энергии?


обновление

Я заметил проблему с принятым ответом:
если я делаю псевдоним как: alias ll="tput rmam; ls -l; tput smam"
и затем попробуйте к grep, он производится: ll | grep foo
это все еще распечатает все файлы, как без grep.

Решение, которое я нашел, состоит в том, чтобы поместить скобки вокруг целого псевдонима:
alias ll="(tput rmam; ls -l; tput smam)"

33
задан 04.04.2017, 16:10

3 ответа

Обратите внимание, что это не имеет никакого отношения к удару (после того как Вы запустили команду, удар просто ожидает его для окончания), и все, чтобы сделать с терминалом.

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

printf '\033[?7l'
ls -l /a/folder/that/contains/files/with/long/names
printf '\033[?7h'
27
ответ дан 07.12.2019, 09:07

Если требуется смочь сделать горизонтальную прокрутку вместо того, чтобы усечь строки, использовать less -S.

17
ответ дан 07.12.2019, 09:07

Вы могли использовать функцию как так:

nowrap() 
{ 
   cut -c-$(tput cols); 
}

имейте в виду, хотя необходимо будет снабдить префиксом команды nowrap или независимо от того, что Вы называете функцию.

5
ответ дан 07.12.2019, 09:07

Теги

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