作者gigigigi (gigigigi)
看板Linux
標題[問題] sed 正則表示法刪除程式註解
時間Wed Feb 6 01:52:22 2019
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 做
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.104.121.78
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1549389145.A.805.html
※ 編輯: gigigigi (106.104.121.78), 02/06/2019 02:50:35
推 losepacific: 在你sed的規則前面再新增取代規則,例: 02/06 08:30
→ losepacific: sed -e 's/\/\*.*$//' -e 's/\/\/.*$//' -e 你已寫 02/06 08:31
→ losepacific: 的規則。 02/06 08:32
→ losepacific: 不過我覺得-e '/\*/d'應該會誤刪到非註解行。跨行註 02/06 08:56
→ losepacific: 解的部分,建議參考sed流程控制的相關資料。 02/06 08:57
→ gigigigi: 我覺得應該要用取代方式 02/06 12:38
→ gigigigi: /\*{1,2}[\s\S]*?\*/ 取代成空白 02/06 12:38
→ OSDBNetwork: sed -nf remccoms3.sed VideoCapturerAndroid.java 02/06 21:01
→ jbee: sed -e 's/\/\/.*//g' -e 's/\/\*.*\*\///g' VideoCa*.java 02/18 08:59