Intereting Posts
Виртуализация – хост Linux – работает Adobe After Effects с аппаратным ускорением (с использованием OpenGL)? Почему тире расширяется \\\\ по-разному до bash? Утилита для добавления содержимого в файл, если его еще нет в файле (даже частично) Переместите все файлы из одной папки в другую, на основе списка Как сохранить / перезагрузить разделенные окна в vim? Создается ли раздел, созданный dd (и кэшем), мгновенно доступный для записи Как дождаться всех файлов и скопировать в каталог прокси-подобные программы на Unix? Как рассчитать среднюю нагрузку LXC Как восстановить загрузочный раздел manjaro / arch? Развернуть заполнители с одинаковыми именами в текстовом файле? LONux Mint не распознает / монтирует жесткий диск 160 ГБ Как мне создать символ для обозначения пути к легкому CD в каталог? Что происходит, когда вы нажимаете дополнительную клавишу на клавиатуре? Как обеспечить, чтобы файл образа диска NTFS не записывался при установке?

Форматировать вывод на определенную длину строки

Поэтому у меня есть вывод с очень длинными строками, и я хочу, чтобы он отформатировался до строк не более 80 колонок, но я не хочу разделить слова, потому что они находятся в пределе столбца.

Я пытался

sed 's/.\{80\}/&\n/g' 

но имеет проблему расщепления слов и создания некоторых строк с пробелом.

Мне удалось сделать это с помощью Vim, установив textwidth до 80, перейдя в начало файла и выполнив gqG для форматирования текста. Но скорее всего это будет делать с sed , awk или что-то подобное, чтобы включить его в скрипт.

Вместо этого используйте fmt :

 fmt --width=80 file 

От man fmt :

 -w, --width=WIDTH maximum line width (default of 75 columns) 

Ниже упомянутое решение может помочь:

cat file_name.txt | fmt -w 80> reduced_file_name.txt

fmt – простой формат форматирования текста.

Используйте fold следующим образом:

 fold -s -w80 file 

Это будет разделено только на пробелы ( -s ), используя ширину линии 80 символов ( -w80 ). Таким образом, он делает то же самое, что и решения fmt , но также позволяет разбивать любой символ при отсутствии опции -s .