Скопируйте несопоставленные строки в от одного файла до другого, объема

Я пытаюсь сравнить файлы от 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.

Будет замечательно, если недавно добавленные строки в файлах результата были выделены некоторые как, окрашенный или по крайней мере полужирный.

Спасибо.

0
задан 24 March 2019 в 11:49

1 ответ

попробуйте 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
1
ответ дан 31 July 2019 в 08:10

Другие вопросы по тегам:

Похожие вопросы: