作者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://webptt.com/cn.aspx?n=bbs/Linux/M.1549389145.A.805.html
※ 编辑: gigigigi (106.104.121.78), 02/06/2019 02:50:35
1F:推 losepacific: 在你sed的规则前面再新增取代规则,例: 02/06 08:30
2F:→ losepacific: sed -e 's/\/\*.*$//' -e 's/\/\/.*$//' -e 你已写 02/06 08:31
3F:→ losepacific: 的规则。 02/06 08:32
4F:→ losepacific: 不过我觉得-e '/\*/d'应该会误删到非注解行。跨行注 02/06 08:56
5F:→ losepacific: 解的部分,建议参考sed流程控制的相关资料。 02/06 08:57
6F:→ gigigigi: 我觉得应该要用取代方式 02/06 12:38
7F:→ gigigigi: /\*{1,2}[\s\S]*?\*/ 取代成空白 02/06 12:38
9F:→ OSDBNetwork: sed -nf remccoms3.sed VideoCapturerAndroid.java 02/06 21:01
10F:→ jbee: sed -e 's/\/\/.*//g' -e 's/\/\*.*\*\///g' VideoCa*.java 02/18 08:59