相关疑难解决方法(0)

如何删除落在 /* .... */ 下的所有字符,包括 /* & */?

我确实尝试过sedand awk,但它不起作用,因为字符所涉及的字符/已经在命令中作为分隔符存在。

请让我知道我怎样才能做到这一点。

下面是一个示例示例。我们要删除评论部分,即/*.....*/

/*This is to print the output
data*/
proc print data=sashelp.cars;
run;
/*Creating dataset*/
data abc;
set xyz;
run;
Run Code Online (Sandbox Code Playgroud)

text-processing

13
推荐指数
4
解决办法
1985
查看次数

使用 sed 将 C 风格的注释转换为 C++ 风格

我正在尝试将单行“C”样式注释转换为“C++”样式。下面的“sed”还不错,但是如果任何前导代码(注释之前的代码)中包含任何“/”,它当然会失败:

sed -i 's,\(^[^\/]*\)\/\*\([^\*]*\)\*\/[ ]*$,\1\/\/\2,' filename
Run Code Online (Sandbox Code Playgroud)

我希望我能做的是:

... [^\\/\\*] ...
Run Code Online (Sandbox Code Playgroud)

即否定' /* '当然不起作用,但是经过几个小时的搜索,我找不到如何正确执行此操作的简单解释:(这似乎不应该是火箭科学。

例如,这些字符串:

blah blah        /* comment */
blah blah / blah /* comment */
blah blah        /* comment */ blah
blah blah / blah /* comment */ blah 
Run Code Online (Sandbox Code Playgroud)

...应该这样转换:

blah blah        // comment 
blah blah / blah // comment 
blah blah        /* comment */ blah  (this CAN'T be converted)
blah blah / blah /* comment */ blah  (this CAN'T be converted)
Run Code Online (Sandbox Code Playgroud)

...显然,如果在“C”注释之后有代码,则无法进行转换。

我将在文件前后进行密切的视觉比较,因此无需在文字中处理“ /* ”,也不想转换任何多行内容。

注意我认为这是一个“否定”问题,但也许还有另一种方法。我只需要在“ …

sed

6
推荐指数
1
解决办法
1511
查看次数

标签 统计

sed ×1

text-processing ×1