我想比较两个文本文件的特定行,如果它们不相同,则更新其中一个文件。
答案 0 :(得分:0)
在技术上不可能更新文本文件中的一行(除非替换行的长度完全相同)。您必须创建一个新文件,最后可以移动到旧文件。
从你的标签中,我认为你正在寻找一个shell解决方案,这可能不是一个好主意。在例如Perl或Ruby或Python中执行它可能更方便。
一种可能性是使用命令head
和tail
,它们允许您将文件分解为多个部分。您可以将文件拆分为三个部分:相关行前面的部分,行本身以及后面的行。
另一种可能性是使用循环和shell的read
命令逐行处理文件,如下所示:
while read line
do
... # Decide here, whether to write $line or the replacement line
done <your_file