[問題] sed 正則表示法刪除程式註解

看板Linux作者 (gigigigi)時間6年前 (2019/02/06 01:52), 6年前編輯推噓2(208)
留言10則, 4人參與, 6年前最新討論串1/1
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

02/06 08:30, 6年前 , 1F
在你sed的規則前面再新增取代規則,例:
02/06 08:30, 1F

02/06 08:31, 6年前 , 2F
sed -e 's/\/\*.*$//' -e 's/\/\/.*$//' -e 你已寫
02/06 08:31, 2F

02/06 08:32, 6年前 , 3F
的規則。
02/06 08:32, 3F

02/06 08:56, 6年前 , 4F
不過我覺得-e '/\*/d'應該會誤刪到非註解行。跨行註
02/06 08:56, 4F

02/06 08:57, 6年前 , 5F
解的部分,建議參考sed流程控制的相關資料。
02/06 08:57, 5F

02/06 12:38, 6年前 , 6F
我覺得應該要用取代方式
02/06 12:38, 6F

02/06 12:38, 6年前 , 7F
/\*{1,2}[\s\S]*?\*/ 取代成空白
02/06 12:38, 7F

02/06 21:01, 6年前 , 8F
02/06 21:01, 8F

02/06 21:01, 6年前 , 9F
sed -nf remccoms3.sed VideoCapturerAndroid.java
02/06 21:01, 9F

02/18 08:59, 6年前 , 10F
sed -e 's/\/\/.*//g' -e 's/\/\*.*\*\///g' VideoCa*.java
02/18 08:59, 10F
文章代碼(AID): #1SMSrPW5 (Linux)
文章代碼(AID): #1SMSrPW5 (Linux)