我确实尝试过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) 我正在尝试将单行“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”注释之后有代码,则无法进行转换。
我将在文件前后进行密切的视觉比较,因此无需在文字中处理“ /* ”,也不想转换任何多行内容。
注意我认为这是一个“否定”问题,但也许还有另一种方法。我只需要在“ …