У меня часто бывают очень длинные строки вывода терминала без \ns, которые редко бывают полезны и мешают найти нужный вывод (например, журналы ошибок или минимизированные файлы, которые соответствуют ack). Есть ли инструмент, который может разрушить такие длинные линии? Для меня идеалом, вероятно, было бы указание в канаве, что линия свернута, которую можно щелкнуть, чтобы развернуть, если я хочу посмотреть на полную строку. Я использую OS X Terminal, но с удовольствием переключаюсь на другой инструмент, если он это обеспечивает. Обходной путь, который обрезает линии после ширины терминала, к которым я мог бы передать свой вывод, также был бы полезен.
1 ответ
0
Вот пара простых решений. Чтобы просто обрезать строки длиной более 80 символов, напишите скрипт, содержащий
#!/bin/sh
expand "$@" | cut -c1-80
и направить свою программу в него. Немного более сложный подход
#!/bin/sh
expand "$@" | awk '{ if (length <= 80) print; else print substr($0,1,77) "...";}'
Это добавляет ...
как маркер, когда отбрасывает данные.
Он дает вам только первые 77 символов, поэтому ...
само по себе не выходит за рамки.
Команда expand
используется для расширения вкладок до пробелов, потому что команды cut
и awk
просто подсчитывают символы и не понимают, что строка, содержащая более десяти вкладок, слишком длинная.