У меня вопрос по команде fmt (если не ошибаюсь она лучше всего подходит для моей задачи)
Проблема такова (два основных варианта):
Надо взять любой текст убрать его форматирование и создать другой текст с заданным форматом.
1. Исходный текст имеет разную длину строки и в нём нет удвоенных пробелов. Новый текст должен иметь определённую ширину, которую может достигать с помощью удвоения пробела между словами.
2. Исходный текст имеет определённую ширину строки и может иметь удвоенные пробел. Задача такая же как и в первом случае.
Буду рад любой помощи
А man fmt религия не позволяет?
Насколько я понял, fmt не позволяет добавлять лишние пробелы для достижения выравнивания по ширине. Для этого придётся использовать что-то ещё.
Хотя у fmt есть опция для соединения всех пробелов в один (опция -u в GNU, -s в BSD), она добавляет лишний пробел после .!?. Возможно, проще для начала прогнать файл через tr -s '[:blank]' для того, чтобы объединить все пробелы до одного.
Для добавления лишних пробелов в строку, насколько я понимаю, штатной команды нет. Можете попробовать вот эти вот: http://reimagery.com/fsfd/txtutil2.htm#textjust (http://reimagery.com/fsfd/txtutil2.htm#textjust). Я сейчас сижу в Windows и мне лень их компилировать и проверять.
tr -s '[:blank:]', конечно же
Цитата: ДмиIIIй от января 12, 2012, 23:15
А man fmt религия не позволяет?
Ну прочтение man ещё не панацея от всех проблем. Да и не всегда понятно или можно этой командой решить то и так как надо.
Цитата: ДмиIIIй от января 12, 2012, 23:15
Насколько я понял, fmt не позволяет добавлять лишние пробелы для достижения выравнивания по ширине. Для этого придётся использовать что-то ещё.
Хотя у fmt есть опция для соединения всех пробелов в один (опция -u в GNU, -s в BSD), она добавляет лишний пробел после .!?. Возможно, проще для начала прогнать файл через tr -s '[:blank]' для того, чтобы объединить все пробелы до одного.
Пробелы это самая маленькая часть проблемы. Это можно решить почти любой программой вплоть до блокнота. Намного сложнее, к примеру, взять уже отформатированный текст на 80 символов и создать из одного абзаца одну строку с которой можно будет что-то сделать, а точнее изменить ширину строки на допустим 75 символов.
Цитата: ДмиIIIй от января 12, 2012, 23:15
Для добавления лишних пробелов в строку, насколько я понимаю, штатной команды нет. Можете попробовать вот эти вот: http://reimagery.com/fsfd/txtutil2.htm#textjust (http://reimagery.com/fsfd/txtutil2.htm#textjust). Я сейчас сижу в Windows и мне лень их компилировать и проверять.
Благодарю.
Надо будет посмотреть что там и как.
Ох чувствую надо будет ещё извилинами пошевелить.