Из-за ряда технических проблем с синхронизацией Dropbox и Simplenote моя основная папка для писем, которая содержит текстовые файлы в основном в формате Markdown, все испортила.

У меня около 500 уникальных файлов, но теперь у каждого из них есть несколько версий. Для любого данного файла каталог содержит что-то вроде этого:

textfile.txt
textfile.md
textfile.org
textfile.0001.txt
textfile.0002.txt

Они в основном имеют идентичный контент - некоторые содержат дополнительные разрывы строк в начале или строки, содержащие имя файла.

Я не сразу понял, что это произошло, и что у меня было несколько версий, хотя для некоторых из них я изменил одну из версий, а не другие. (Хорошей новостью является то, что когда я изменяю файлы, я не редактирую и не удаляю, я просто добавляю новый текст.)

Я хочу согласовать свою папку, чтобы у меня была одна каноническая версия для каждого файла.

Поскольку сейчас есть тысячи файлов и более двух версий каждого, я бы не стал использовать приложение diffs для их согласования.

Существует ли инструмент, который найдет несколько текстовых файлов с одинаковым содержимым и автоматически объединит их? Опять же, файлы содержат дублированный контент с некоторым новым контентом, поэтому было бы достаточно просто объединить дублированный контент и затем добавить новый контент в конец файла.

(Я использую OSX 10.8.2 и пишу в основном в Aquamacs Emacs. О, и я собираюсь прекратить использовать Simplenote.)

1 ответ1

2

Поскольку Mac основан на Unix, я предполагаю, что он поддерживает команды sdiff и cat на своих терминалах. Я просто хотел оставить комментарий здесь, но так как мне не хватает представителей, я отвечаю как ответ. Поэтому я думаю, что мы должны попытаться сделать что-то вроде:

Pseudocode:
 loop a
     loop b
     if (sdiff fileA FileB*)==0 then cat fileA fileB*
     end loop b
 end loop a

Где мы просто перебираем все возможные файлы, которые существуют в каталоге. Я предполагаю, что другие пользователи могут сказать нам, возможно ли это вообще или нет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .