2013-03-19 28 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