2016-01-29 28 views
1

backup.txt回到原來爲Backup.txt特定線路

five six seven 
five six seven seven six five 
five more here 
What about FIVE fIve fivefive fivefivefive fIveFivefiVe? 

我new.txt

four six seven 
four six seven seven six four 
four more here 
What about four four fourfour fourfourfour fourfourfour? 

我要回複線3和我的新案文4是怎麼回事在backup.txt

five more here 
What about FIVE fIve fivefive fivefivefive fIveFivefiVe? 

如何做到這一點與sed

所以new.txt會像

four six seven 
four six seven seven six four 
five more here 
What about FIVE fIve fivefive fivefivefive fIveFivefiVe? 
+0

我的直接反應是「你不能」。這取決於你的意思,但除非你有上一行4(特別是)的記錄,否則無法恢復原始文件的區分大小寫,因爲編輯後的版本不區分大小寫。另外,我假設你的意思是你已經完成了文件的完整傳遞,然後想再次傳遞它來撤消它。在編輯過程中,您無法有意地還原內容; 'sed'沒有撤銷緩衝機制或類似的東西。這是一個非交互式編輯器;不需要這樣的機制。 –

+0

嗨喬納森,我不認爲我的問題非常清楚,我很抱歉。我使用了new.txt,這是我使用sed玩的新文本,我有backup.txt,這是原創的。有沒有辦法將我的新文本的第3行和第4行更改爲backup.txt文件的方式? – MMM

+1

哦。這算什麼? 'sed -n'1,2p; 7,8p'new.txt backup.txt'?不要默認打印;打印前兩行(來自'new.txt');打印最後兩行(來自'backup.txt')。這不是非常靈活,但是既沒有給出這種情況。或者,您可以將變換僅應用於前兩行:'sed -e'1,2s/five/four/g'backup.txt'。 –

回答

0

在你的具體情況

sed -n '1p;2p;7p;7p' new.txt backupt.txt 

將正常工作。