Intereting Posts
изменить местоположение файла .sqlite_history Как восстановить файлы, которые я удалил сейчас, запустив rm *? Как удалить все CRLF в файле (не заменять LF) Каковы функциональные различия между древовидными / иерархическими и плоскими файловыми системами? Как отказаться от stderr в ограниченной оболочке Bash? Общая библиотека libgcrypt, найденная в системном python, но не в среде Anaconda Как запустить источник с помощью docker exec? Как выбрать строку текста в браузере архаичного терминала – Ссылки Изменение Chromium автоматически запускает Nautilus с помощью команды Show In Folder Комбинируйте проводной и Wi-Fi для использования с VPN Запустить скрипт heredoc через su, прикрепленный к текущему tty Запрос маршрута на общедоступный IP-адрес внутреннего частного IP-адреса Сохранять соотношение сторон в режиме Мгновенное возобновление после гибернации undefined symbol в /usr/lib64/libGL.so.1 при использовании ssh

Форматировать текст с пробелами между строками

Я копирую текст из pdf, и когда я вставляю его в текстовый редактор, он выглядит следующим образом:

введите описание изображения здесь

Текст не распространяется на правый край, но выглядит как столбец, и между строк есть пробел. Я бы хотел, чтобы текст расширялся до нужного края и между строк не было пробелов. Я могу отформатировать это вручную, но это очень много времени. Есть ли программа, которая позволит мне автоматизировать это?

grep . удаляет все пустые строки. Вы можете передать результат в fmt чтобы переформатировать текст по ширине по вашему выбору. Если у вас есть текст в буфере обмена X, xsel -b получит его оттуда.

 xsel -b | grep . | fmt -w 80 >reformatted.txt 

Если вам не нужны разрывы строк, вы можете заменить новые строки пробелами, но в конце добавить новую строку.

 xsel -b | grep . | tr '\n' ' '; echo 

Результат будет не очень хорошим, потому что в соответствии с вашим изображением дефисы теряются, поэтому «вуль / гар» выдается как «вуль-гар», «благодарение / дарение» как «благодарение» и т. Д.

grep . сворачивает все абзацы в один. Вы можете избежать этого, только если есть какой-то способ, в котором абзацы помечены в тексте. Если между строками одного и того же абзаца и как минимум две пустые строки между абзацем есть одна пустая строка, вы можете удалить разрывы строк и сохранить разрывы абзацев следующим образом:

 awk 'length {if (previous < NR-2) print ""; previous = NR; print}' 

Вы можете попробовать запустить pdftotext в PDF напрямую. Это не будет переформатировать текст и может включать или не включать пустые строки (это зависит от того, как был создан PDF-файл).

Ты можешь это сделать:

 awk -v RS=$'\n\n' -v ORS=" " '1 { print; }' file | fold