将不匹配的字符串从一个文件批量复制到另一个文件

将不匹配的字符串从一个文件批量复制到另一个文件

我正在尝试将 中的文件folder1与 中的更新版本进行比较folder2。这些文件具有相同的名称,但字符串数量可能不同。这些字符串如下所示:

string_1_name: "some text"
string_2_name: "some text"
.
.
string_n_name: "some text"

因此,我只需要比较冒号 - 之前的字符串部分string_1_name,然后如果来自 folder2 的 file1.txt 有额外的或更新的字符串,我想复制整个字符串string_1_name: "some text"并将其粘贴到file1.txtfromfolder1中,但在同一位置(更新的字符串可以在旧字符串之间)或用更新的字符串替换旧字符串。然后file1.txt在中创建结果(具有相同的名称)folder3

如果结果文件中新添加的字符串以某种方式突出显示、着色或至少加粗,那就太好了。

谢谢。

答案1

diff -u file_1.txt file_2.txt > patch1o2 然后尝试patch -p0 < patch1o2

第一个命令将创建一个名为的文件,patch1o2其中包含两个文件之间的所有差异。
第二个命令将在第一个文件的同一行位置添加差异的内容。

输出将是一个 file_1.txt,其中包含来自 file_2.txt 的额外行

编辑 2015 年 7 月 14 日:创建一个带有循环的 bash 脚本来分析文件夹中存在的所有文件,下面是示例:

FILE_1=folder_1/*.txt
for i in "$FILE_1"
do  
    awk -F"," '{print $1}' "$i"
done

相关内容