Я пытаюсь сравнить файлы от folder1
к их обновленной версии в folder2
. Файлы имеют идентичные имена, но могут иметь другое количество строк. Строки похожи:
string_1_name: "some text"
string_2_name: "some text"
.
.
string_n_name: "some text"
Таким образом, я должен сравнить только части строк перед двоеточием - string_1_name
, и затем если file1.txt от folder2 имеет дополнительную или обновленную строку, я хочу скопировать полную строку string_1_name: "some text"
и вставьте его в file1.txt
от folder1
но в том же месте (обновленная строка может быть промежуточными старыми строками) или заменяют старую строку обновленной. И затем создайте результат file1.txt
(с тем же именем) в folder3
.
Будет замечательно, если недавно добавленные строки в файлах результата были выделены некоторые как, окрашенный или по крайней мере полужирный.
Спасибо.
попробуйте diff -u file_1.txt file_2.txt > patch1o2
затем patch -p0 < patch1o2
, первая команда создаст файл, названный patch1o2
содержащий все различие между этими двумя файлами
, вторая команда добавит в первом файле содержание различия в том же положении строки.
выводом будет file_1.txt, обновленный с дополнительными строками из file_2.txt
редактирование 14.07.2015: создайте сценарий удара с циклом для анализа всех файлов, существующих в папке, вот пример:
FILE_1=folder_1/*.txt
for i in "$FILE_1"
do
awk -F"," '{print $1}' "$i"
done