0

我想在出现这种情况的地方评论一行

如果(a&b)?光盘;

所以我看过一个脚本,但它不起作用。

for f in var.c; do
  cat $f | sed 's@if(a & b)\(.*\)$@/*\1 */@' > converted-files/$f
done

谁能告诉我比这更适合我的情况的脚本。

4

2 回答 2

1

您的sed表达式被编写为仅包含三元运算符之后的部分。尝试:

sed 's@if(a & b).*$@/* & */@'

也就是说,我不确定您是否真的想使用正则表达式来注释代码。

于 2013-08-05T07:48:08.873 回答
0

你真的不应该使用cat. 您的代码片段也不是有效的 C,但这可能是注释掉它的好理由。

for f in var.c
do
    sed 's@if(a & b).*$@/*&*/@' $f > converted-files/$f
done

如果您愿意,您可以在注释标记周围添加空格,但对称性建议总共 0 或 2 个空格,而不仅仅是脚本中的 1 个。

于 2013-08-05T07:57:25.337 回答