Я запускаю сценарии для текстового файла и хочу объединить его содержимое. Допустим, файл называется «file1».
file1:
Это какой-то текст, вау!
Теперь у меня есть несколько версий после запуска скриптов.
file2:
Мой <> какой-то текст, вау!
file3:
Ваш <> текст, вау!
file4:
Это какой-то текст <>, вау!
Как видите, некоторые слова заменены на другие и добавлены <>. Теперь я хочу объединить эти файлы, чтобы слова были объединены, если они изменились:
Выход:
Мой <> Твой <> это какой-то текст <>, вау!
Порядок не имеет значения; они просто должны быть объединены. Есть ли инструмент, который может сделать это легко?
text-processing
merge
MatthewRock
источник
источник
file1..4
? и как вы решаете, какое слово останется в конечном выходном файле?My<>Yours<>
может бытьYours<>My<>
вместо этогоword<>
; мы объединяем по правилу: если слово было изменено хотя бы в одном файле, объединить измененные версии и заменить старое слово измененной объединенной версией. Таким образом,text
->txt<>
,This
->My<>Yours<>
(или, как отмечено,Yours<>My<>
) иsome
->some
. Мы можем объединить файлы 1..4 или 2..4, не имеет значения; нам ничего не понадобится из file1 (кроме оригинального заказа, если это необходимо).Ответы:
Я не знаю каких-либо инструментов, которые бы это делали, но это не сложно кодировать. Вот фрагмент Perl:
Многое можно улучшить, первое, на что я бы обратился, если бы мне пришлось его использовать, это дополнительный пробел в конце строки, я бы, вероятно, добавил выходные слова в массив и использовал бы функцию соединения, но я найти задачу странной, чтобы на самом деле реализовать это.
источник