簡體   English   中英

使用sed將文件替換為字符串,而不使用兩個sed命令?

[英]Replacing a string with file using sed, without using two sed commands?

在自動執行許可證標頭的過程中,我有一個占位符: /* @@LICENSE_HEADER@@ */ ,可以用以下文件替換為名為license的文件:

sh-3.2$ sed -e $'/\/\* @@LICENSE_HEADER@@ \*\//{r license\n}' \
-e $'/\/\* @@LICENSE_HEADER@@ \*\//d' file.c

我已經從其他來源整理了這個。 是否可以替換字符串,而不是發出第二條命令來刪除字符串出現的行?

嘗試sed -e $'/\\/\\* @@LICENSE_HEADER@@ \\*\\//{r license\\n;d;}' file.c

Sed是一種用於編輯的編程語言,因此每行可以使用多個命令。

順便說一句,我建議您將許可證字符串更改為不包含任何特殊正則表達式字符的字符。 在這里,我只是將其設置為@@@LICENSE NUMBER@@@ ,所以不必不必轉義正則表達式字符。 畢竟,這是您的字符串,因此您可以根據需要進行更改:

sed  '/@@@LICENSE NUMBER@@@/ {
r license.txt
d
}' file.c

暫無
暫無

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

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