0

您能否帮助一个可以对文件执行的命令:

输入-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
*/

我的意见是,首先从'/ '删除到' /'第一次出现或从文件开始删除直到*/。之后,用文件顶部的第二行替换。

4

2 回答 2

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
于 2013-03-19T14:11:09.967 回答
0

对 sed 和 awk 使用正则表达式。Gawk 有一个叫做 gsub 的函数来替换文本。

于 2013-03-19T14:04:04.633 回答