我有几个C
程序,每个程序开头都包含注释行。行以/ *开头,后跟第一行注释,但终结符行中的* /为only
个字符。你能告诉我一种从所有文件中删除这些评论的方法吗?
答案 0 :(得分:2)
find -name '*.c'
使用它来验证您正在使用正确的文件。
find -name '*.c' | xargs sed -i '0,/^*\/$/d'
这将删除包含仅包含终止符的第一行。
答案 1 :(得分:1)
这会删除以/*
开头的行,*/
的第一个匹配(必须是注释终结符,无论其行是否以额外空格开头):
sed '/^\/\*/,/\*\//d' < inputfile
答案 2 :(得分:1)
一种(丑陋的)方式是使用C预处理器cpp
。 E.g:
$ echo "AAA ; /* hahaha */ " | cpp -
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
AAA ;
虽然输出在语义上与输入完全相同,但cpp
将替换所有预处理器指令,这可能不是您想要的。另一方面,非常擅长它的作用。