如何比较文本文件的行与不同文本文件的行,如果它们不相同则附加第一行

时间:2016-02-01 16:55:40

标签: shell unix solaris-10

我想比较两个文本文件的特定行,如果它们不相同,则更新其中一个文件。

1 个答案:

答案 0 :(得分:0)

在技术上不可能更新文本文件中的一行(除非替换行的长度完全相同)。您必须创建一个新文件,最后可以移动到旧文件。

从你的标签中,我认为你正在寻找一个shell解决方案,这可能不是一个好主意。在例如Perl或Ruby或Python中执行它可能更方便。

一种可能性是使用命令headtail,它们允许您将文件分解为多个部分。您可以将文件拆分为三个部分:相关行前面的部分,行本身以及后面的行。

另一种可能性是使用循环和shell的read命令逐行处理文件,如下所示:

while read line           
do           
  ... # Decide here, whether to write $line or the replacement line          
done <your_file