簡體   English   中英

如何用文件中的sed替換多行注釋

[英]How to replace multiline comments with sed in files

我有各種各樣的文件php html xml ,其中copyright聲明包含在top或從頂部起2-3行之后,像這樣

/**
 * Copyright (c)  2014
 * All rights reserved.
 * bla bla many lines like this
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

現在我想從所有文件中刪除所有文本。

如何使用sed刪除。

我只知道基本的sed但我不知道如何處理多行

$ cat file
1
2
/**
 * Copyright (c)  2014
 * All rights reserved.
 * bla bla many lines like this
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
3
4
/* and here is another comment
 * you presumably want to keep
 */
5
6

$ awk '/^\/\*/{c++} c!=1; /^ \*\//{c++}' file
1
2
3
4
/* and here is another comment
 * you presumably want to keep
 */
5
6

您可以刪除以/*開頭並以*/結尾的范圍,如下所示:

sed '/\/\*/,/\*\//d inputFile

有時會很難讀,所以我舉一個更清晰的例子:如果要刪除以abc開頭和以xyz結尾的范圍內的所有內容,則可以

sed '/abc/,/def/d' inputFile

/**/的情況相同,但是/*必須轉義。

類似的方法應該適用於文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM