请使用sed建议我使用sed查找只有匹配字符串的行。
/* a comment line in a C program */
#include <stdio.h> /* including the libraries */
int main()
{
int n, i, flag = 0; /* assigning the values */
printf("Enter a positive integer: ");
scanf("%d",&n);
for(i=2; i<=n/2; ++i)
{
/* condition for nonprime number */
if(n%i==0)
{
flag=1;
break;
}
}
if (flag==0)
printf("%d is a prime number.",n);
else
printf("%d is not a prime number.",n);
return 0; /* returns 0 */
}
在上面的文本中,我想删除没有任何前导或尾随文本(OR)的唯一注释行我想删除不在可执行语句之前或之后的注释。
我使用了sed 's_\(/*\)\(.*\)\(*/\)_''_g' input
,但删除了所有评论
请建议适当的命令
答案 0 :(得分:1)
试试这个:
sed '/^[ \t]*\/\*.*\*\/[ \t]*$/d' file
删除所有只有潜在前导或尾随空格的注释行。
<强>解释强>
将d
(删除)命令应用于行:
^[ \t]*
:从零个或多个空格或标签开始\/\*.*\*\/
:其后是评论。 /*
和*/
已在此处转义[ \t]*$
:以零或多个空格或标签结尾修改强>
在第二个字符范围内删除了额外的^
。