sed 正則表示法刪除程式註解 - Linux

Table of Contents


https://chromium.googlesource.com/external/webrtc/+/d60d06a9f971a36c9a51ff9919850cffb993893c/webrtc/sdk/android/api/org/webrtc/VideoCapturerAndroid.java


以這檔案舉例下面正則表示法會刪除 // , /* */ , 跟空白行

sed -e '/\*/d' -e '/\/\//d' -e '/^\s*$/d' VideoCapturerAndroid.java

但是有個問題是像是下面這兩種註解會把整行程式碼刪除~

VideoCapturerAndroid.create(name, eventsHandler, false /*captureToTexture */);
VideoCapturerAndroid.create(name, eventsHandler, false); // captureToTexture

變我希望只刪除註解部份變成下面這樣

VideoCapturerAndroid.create(name, eventsHandler, false);

這樣sed正則有辦法做到嘛?

https://blog.csdn.net/JairDavis/article/details/53675669

上面網址提到用gedit編輯器使用正則 /\*{1,2}[\s\S]*?\*/ 取代成空白是可以

但是我有大量檔案需要做 希望能用sed + find 做

謝謝

--

All Comments

Dora avatarDora2019-02-07
在你sed的規則前面再新增取代規則,例:
Andy avatarAndy2019-02-08
sed -e 's/\/\*.*$//' -e 's/\/\/.*$//' -e 你已寫
Olive avatarOlive2019-02-08
的規則。
Hedda avatarHedda2019-02-12
不過我覺得-e '/\*/d'應該會誤刪到非註解行。跨行註
Mason avatarMason2019-02-16
解的部分,建議參考sed流程控制的相關資料。
Charlie avatarCharlie2019-02-17
我覺得應該要用取代方式
/\*{1,2}[\s\S]*?\*/ 取代成空白
Adele avatarAdele2019-02-20
下載 https://bit.ly/2TB3eKP
sed -nf remccoms3.sed VideoCapturerAndroid.java
Kumar avatarKumar2019-02-25
sed -e 's/\/\/.*//g' -e 's/\/\*.*\*\///g' VideoCa*.java