1

ライセンス ヘッダーを自動化する過程で、次のような/* @@LICENSE_HEADER@@ */名前のファイルに置き換えることができるプレース ホルダー: があります。license

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

私はこれを他の情報源からまとめました。文字列が表示される行を削除する 2 番目のコマンドを発行するのではなく、文字列を置き換えることは可能ですか?

4

2 に答える 2

1

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

于 2013-04-12T12:25:55.060 に答える
0

Sed は一種の編集用プログラミング言語であるため、1 行に複数のコマンドを使用できます。

ところで、ライセンス文字列を特別な正規表現文字を含まないものに変更することをお勧めします。ここでは、 を作成しただけ@@@LICENSE NUMBER@@@なので、正規表現の文字をエスケープし続ける必要はありません。結局のところ、それはあなたの文字列なので、あなたが望むものにすることができます:

sed  '/@@@LICENSE NUMBER@@@/ {
r license.txt
d
}' file.c
于 2013-04-12T12:17:04.143 に答える