Подтвердить что ты не робот

Файл cat без переноса строки

В * nix, как мне отображать (cat) файл без обертки строк: более длинные строки должны быть вырезаны так, чтобы они вписывались в ширину экрана.

4b9b3361

Ответ 1

Обратите внимание, что cut принимает имя файла в качестве аргумента.

Кажется, это работает для меня:

watch 'bash -c "cut -c -$COLUMNS file"'

Для тестирования я добавил правое поле:

watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'

Когда я изменил размер моего терминала, усечение было обновлено для соответствия.

Ответ 2

Возможно, вы ищете fmt:

fmt file

Это довольно агрессивно переформатирует текст, чтобы он мог делать больше, чем вы хотите.

В качестве альтернативы команда cut может вырезать текст до определенной ширины столбца, отбрасывая текст за пределами допустимого поля:

cat file | cut -c1-80

Другим удобным вариантом является команда less -S, которая отображает файл в полноэкранном окне с прокруткой влево/вправо для длинных строк:

less -S file

Ответ 3

как утверждают другие, ответ cut -c ..., но для добавления к нему некоторой динамики я предпочитаю это:

cat file.txt |cut -c -$(tput cols)

Ответ 4

чтобы переключить длинную линию на меньшее. Значение по умолчанию - обертка.

- `less file`
- in file type `"-S"` to toggle to truncate on line width
- to toggle back `"-S"` again.

Ответ 5

Использование cut не учитывает, что вкладки считаются одним символом \t, но они печатаются как 8 пробелов. Таким образом, файл с вкладками будет разрезан на разных воспринимаемых столбцах.

less -S обрезает оптимально текст, также при наличии вкладок, но AFAIK его нельзя использовать для неинтерактивной печати "нарезанного" файла.

Рабочее решение - это преобразование вкладок в пробелы через expand, а затем cut вывод:   expand < file | cut -c -$(tput cols)