2013-03-19 94 views
0

能否請您爲一個命令,可以在文件上做幫助:與文件替換線塊的Linux/Unix命令

輸入-1:

/* 
* Copyright (c) 1992-2013 Some comp, Inc and/or its affiliates. All rights reserved. 
* Some comp PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 
* Author: aaaa 
* DateCreated: aaaa 
* Last Modified By: aaaa 
* Modified Time: aaaa 
* File Version: aaaa 
* File Path: aaaa 
*/ 

上述所有線路應刪除並替換與

/* 
* Copyright (c) 1992-2013 some comp, and/or its affiliates. All rights reserved. 
* some comp PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 
* Author: bbbb 
* DateCreated: bbbb 
* Last Modified By: bbbb 
* Modified Time: bbbb 
* File Version: bbbb 
* File Path: bbbb 
*/ 

我的意見是,首先從「/ 」刪除對「 /」第一次出現或* /從文件中刪除開始至。 之後,用文件頂部的第二行代替。

+0

什麼是文本的兩片之間的主要區別我看不出太大的區別,第一篇文章中的公司除外,第二篇文本中的「S」代替「s」! – 2013-03-19 14:02:08

+0

現在我可以看到差異了! – 2013-03-19 14:04:38

回答

0

在sed和awk中使用正則表達式。 Gawk有一個名爲gsub的函數來代替文本。

0

假設該文件被稱爲filename。保存沒有第一行和最後一行的新文本(即從「* Copyright ...」到「* File Path ...」)newcopyright。然後:

sed -e '/Path/ r newcopyright' -e '/Copyright/,/Path/d' filename 

這會將新文件發送到標準輸出(即您的屏幕)。您可以將其重定向到一個新的文件,或者如果你要修改的地方文件,你可以這樣做:

sed -i '.save' -e '/Path/ r newcopyright' -e '/Copyright/,/Path/d' filename 
+0

嗨測試版,/路徑意思是我說的文件路徑。 – Kumar 2013-03-20 05:34:42

+0

@Kumar:不,「/ Path」是「/ Path」。在文件中,要替換的文本末尾是以「* File Path:」開頭的行。 'sed'命令將其用作地標。你有這個命令的麻煩嗎?如果是這樣,我可以引導你通過它。 – Beta 2013-03-20 12:00:38