#shell #text #doc
#оболочка #текст #документ
Вопрос:
У меня есть несколько документов Word, из которых я хотел бы удалить некоторые элементы. Я хотел бы сделать следующее:
- Скопируйте и вставьте все содержимое файла word (может не потребоваться) и переместите его в текстовый файл ИЛИ конвертируйте .doc в .txt
- Использование регулярных выражений: заменить
[.*]
на «» И заменить(.*)
на «» - Сохраните результат в текстовом файле с тем же именем, что и в исходном документе Word.
Мысли и указания приветствуются. В нынешнем виде я не знаю, как сделать что-либо из этого программно. Я делаю это вручную, как есть.
Если это имеет значение, я использую Ubuntu 11.04
Ответ №1:
Поскольку вы открыты для использования обычного текста, некоторые улучшения в вашем алгоритме:
- Используется
antiword
для автоматизации преобразования из doc в tx - Используется
sed
для изменения регулярных выражений на месте:sed -i -e's/bad/good/' file.txt
Обновление (в ответ на комментарий):
Регулярные выражения в порядке, но я не совсем понял цель:
-
если вы хотите заменить вхождения [foo] amp; (foo) на «», используйте:
sed -i -e's/[.*]/""/g' file.txt; sed -i -e's/(.*)/""/g' file.txt
-
если вы хотите заменить вхождения [foo] amp; (foo) на «foo» при каждом использовании:
sed -i -e's/[(.*)]/"1"/g' file.txt; sed -i -e's/((.*))/"1"/g' file.txt
Комментарии:
1. Часть 1. Нет проблем. Но я совсем не знаком с sed. Не могли бы вы обновить свой ответ примером, в котором используется 1 из моих вызовов регулярных выражений, чтобы я мог видеть синтаксис?
2. Обновленный ответ, поскольку мне нужно было больше места
3. Мои извинения, я должен был быть более точным в своем использовании. По сути, я хочу удалить все и вся в документе, который заключен в (…) или […] , включая скобки.