Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Работа с текстом в коммандной строке

Автор User Sapiens, января 12, 2012, 22:48

0 Пользователи и 1 гость просматривают эту тему.

User Sapiens

У меня вопрос по команде fmt (если не ошибаюсь она лучше всего подходит для моей задачи)


Проблема такова (два основных варианта):

Надо взять любой текст убрать его форматирование и создать другой текст с заданным форматом.

1. Исходный текст имеет разную длину строки и в нём нет удвоенных пробелов. Новый текст должен иметь определённую ширину, которую может достигать с помощью удвоения пробела между словами.

2. Исходный текст имеет определённую ширину строки и может иметь удвоенные пробел. Задача такая же как и в первом случае.


Буду рад любой помощи
,,Den Stil verbessern — das heißt den Gedanken verbessern, und gar nichts weiter!"
Nietzsche
"A question is really an ambiguous proposition; the answer is its determination."
Langer
«Il est encore plus facile de juger de l'esprit d'un homme par ses questions que par ses réponses»
de Lévis

ДмиIIIй

А man fmt религия не позволяет?

Насколько я понял, fmt не позволяет добавлять лишние пробелы для достижения выравнивания по ширине. Для этого придётся использовать что-то ещё.

Хотя у fmt есть опция для соединения всех пробелов в один (опция -u в GNU, -s в BSD), она добавляет лишний пробел после .!?. Возможно, проще для начала прогнать файл через tr -s '[:blank]' для того, чтобы объединить все пробелы до одного.

Для добавления лишних пробелов в строку, насколько я понимаю, штатной команды нет. Можете попробовать вот эти вот: http://reimagery.com/fsfd/txtutil2.htm#textjust. Я сейчас сижу в Windows и мне лень их компилировать и проверять.



User Sapiens

Цитата: Дми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. Я сейчас сижу в Windows и мне лень их компилировать и проверять.
Благодарю.
Надо будет посмотреть что там и как.

Ох чувствую надо будет ещё извилинами пошевелить.
,,Den Stil verbessern — das heißt den Gedanken verbessern, und gar nichts weiter!"
Nietzsche
"A question is really an ambiguous proposition; the answer is its determination."
Langer
«Il est encore plus facile de juger de l'esprit d'un homme par ses questions que par ses réponses»
de Lévis

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр