我是sed
的新手,我无法使用它删除所有&#39 ;;' C ++文件注释中的字符,即起始或包含字符串" //" (我已经将" / * ... * /"评论转换为" // ..."评论)。
例如:
// lorem; ipsum ; test
int a; // 1 ; 2 ; 3 ;
我希望:
// lorem ipsum test
int a; // 1 2 3
对于我的C ++文件中的任何评论。
********* EDIT *********
以下是SED分两步的解决方案。 AWK的解决方案也可以在答案中找到。
sed 's/\/\//\n\/\//g'
sed '/^\/\// s/;//g'
答案 0 :(得分:0)
在AWK中很简单。创建文件 r.awk :
function process(s) {
gsub(";", "", s)
return s
}
{
sep = "//"; ns=length(sep)
m = match($0, sep)
if (!m) {print; next}
body = substr($0, 1, m-1)
cmnt = substr($0, m+ns )
print body sep process(cmnt)
}
用法:
awk -f r.awk input.file