Bash скрипт, который добавляет пробел внутри длинных слов в файле Pages - PullRequest
0 голосов
/ 31 января 2020

Мне нравится конвертировать документы в формат EPUB, потому что мне легче читать. Однако, если я сделаю это, например, для некоторой документации по коду, некоторые действительно длинные строки кода не будут читаться в EPUB, потому что они тянутся за пределы экрана. Я хотел бы автоматически вставлять пробелы в любые слова в текстовом файле (в частности, в документе Страницы) определенной длины, чтобы их можно было сократить, скажем, до 10 символов. Затем я преобразую этот документ Pages в EPUB.

Как мне написать сценарий bash, который проходит через документ Pages и вставляет пробелы в любое слово длиннее, чем, возможно, 10 символов?

1 Ответ

1 голос
/ 31 января 2020

sed ваш друг:

$ cat input.txt
a file with a
verylongwordinit to test with.
$ sed 's/[^[:space:]]\{10\}/& /g' input.txt
a file with a
verylongwo rdinit to test with.

Для каждой последовательности из 10 непробельных символов в каждой строке добавьте пробел после (& в тексте замены заменяется на совпавший текст).

Если вы хотите изменить встроенный файл вместо копирования, в игру вступает ed:

ed input.txt <<'EOF'
s/[^[:space:]]\{10\}/& /g
w
EOF

(или в некоторых версиях sed требуется -i переключатель для встроенного редактирования)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...