Всякий раз, когда какая-либо команда генерирует длинные строки в качестве вывода (например, когда ls -l
папка содержит файлы с длинными именами), длинные строки переносятся на следующую строку, что портит структуру столбцов.
Есть ли способ избежать этого? Что-то похожее на vim-опцию nowrap?
Обновить
Я заметил проблему с принятым ответом:
если я сделаю псевдоним, такой как: alias ll="tput rmam; ls -l; tput smam"
и затем попытаюсь отобразить его вывод: ll | grep foo
он все равно будет печатать все файлы, как без grep.
Решение, которое я нашел, состоит в том, чтобы заключить в скобки весь псевдоним:
alias ll="(tput rmam; ls -l; tput smam)"
command-line
bash
Михай Ротару
источник
источник
Ответы:
Обратите внимание, что это не имеет ничего общего с bash (после того, как вы запустили команду, bash просто ждет ее завершения) и со всем, что связано с терминалом.
Большинство эмуляторов терминала по умолчанию переносятся с правого поля. Но это можно отключить с помощью соответствующей последовательности управления , если эмулятор терминала это поддерживает; тогда длинные строки просто усекаются:
источник
tput rmam; ls -l longname; tput smam
man 5 terminfo
в Linux).Если вы хотите иметь возможность выполнять горизонтальную прокрутку вместо усечения строк, используйте
less -S
.источник
Вы можете использовать такую функцию:
имейте в виду, что вам нужно будет добавлять команды к префиксам
nowrap
или как угодно.источник
Вы можете переопределить функцию так, чтобы она автоматически запускалась
tput rmam
перед вашим grep иtput smam
после:Оставьте это в своем,
.bash_profile
и всякий раз, когда вы запускаетеgrep
, он будет работать без переноса строки.Это было сильно отредактировано, извинения перед комментаторами.
источник
sleep 20
удивительно :-)передать его команде less с ключом -S:
Затем вы можете использовать стрелки вверх / вниз / влево / вправо для прокрутки и введите q, чтобы выйти.
источник
Попробуй это
источник