2016-02-01 27 views
-4

我想比較兩個文本文件的特定行,並在文件不相同的情況下更新其中一個文件。如何將一行文本文件與一行不同的文本文件進行比較,如果它們不相同,則追加第一行

+1

「附加」?或「更新」?這些文件是什麼樣子的?你有什麼嘗試? –

+0

有關如何更好地提出問題的信息,請參閱此信息http://stackoverflow.com/help/mcve –

+0

我想將一個vfstab文件的根設備詳細信息(特別是不是整個文件)與其他設備進行比較,然後更新如果細節不一樣 –

回答

0

正在更新從技術上講,文本文件中的行是不可能的(除非替換行的長度完全相同)。您必須創建一個新文件,最後您可以移動到舊文件。

從你的標籤,我假設你正在尋找一個shell解決方案,這可能不是一個好主意。這可能更方便,例如,Perl,Ruby或Python。

一種可能性是使用命令headtail,它們允許您將文件分解爲多個部分。你可以將你的文件分成三部分:所涉及的行之前的部分,行本身,以及後面的行。

另一種可能性是使用循環和殼的read命令來處理由線路文件線,像這樣:

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

嗨,感謝您的快速回復!如果它們的長度相同,如何替換該行 –

+0

如果您使用zsh作爲shell,請查看* zshall *手冊頁中的命令'sysopen','sysread'' sysseek'和'syswrite'。但是,在這種情況下,** real **編程語言將更易於使用。 – user1934428

相關問題