MS Word Doc: автоматизация поиска / замены с использованием сценариев оболочки - PullRequest
1 голос
/ 04 октября 2011

У меня есть несколько документов Word, из которых я хотел бы удалить некоторые элементы. Я хотел бы сделать следующее:

  1. Скопируйте и вставьте все содержимое файла слова (может не понадобиться) и переместите его в текстовый файл ИЛИ конвертируйте .doc в .txt
  2. Использование регулярного выражения: заменить \[.*\] на "" И заменить \(.*\) на ""
  3. Сохранить результат в текстовом файле с тем же именем, что и исходный текст документа.

Мысли и направление приветствуются. В настоящее время, я не знаю, как сделать что-то из этого программно. Я делаю это вручную, как есть.

Если это имеет значение, я использую Ubuntu 11.04

1 Ответ

2 голосов
/ 04 октября 2011

Поскольку вы открыты для использования простого текста, некоторые улучшения вашего алгоритма:

  1. Используйте antiword для автоматизации преобразования из doc в tx
  2. Используйте sed длясделать модификацию регулярного выражения на месте: sed -i -e's/bad/good/' file.txt

Обновление (в ответ на комментарий):

Регулярные выражения в порядке, но я не понялцель полностью:

  • , если вы хотите заменить вхождения [foo] & (foo) на "", используйте:

    sed -i -e's/\[.*\]/""/g' file.txt; sed -i -e's/\(.*\)/""/g' file.txt

  • , если вы хотите заменять вхождения [foo] & (foo) на «foo» при каждом использовании:

    sed -i -e's/\[\(.*\)\]/"\1"/g' file.txt; sed -i -e's/(\(.*\))/"\1"/g' file.txt

...