如何使用“grep”从文件中删除注释?

时间:2011-10-18 08:49:41

标签: sql grep

我有一个SQL文件,我需要删除所有的评论

-- Sql comment line

如何使用GREP或其他工具在Linux中实现此目的?

最诚挚的问候,

3 个答案:

答案 0 :(得分:10)

grep工具有一个-v选项,可以反转过滤器的意义。例如:

grep -v pax people

将为{em>不包含people的{​​{1}}文件中的所有行提供。

一个例子是:

pax

除去评论标记前面只有空格的行。但是不会更改如下行:

grep -v '^ *-- ' oldfile >newfile

如果您想这样做,可以使用select blah blah -- comment here.

之类的内容
sed

编辑每行删除sed -e 's/ --.*$//' oldfile >newfile 到行尾的所有字符。

请记住,您需要小心在真正的 SQL语句中找到字符串" --",如(设计的):

" --"

如果你有这些,你最好不要创建/使用SQL解析器而不是简单的文本修改工具。


运作中select ' -- ' | colm from blah blah blah 的成绩单:

sed

对于pax$ echo ' ...> this is a line with -- on it. ...> this is not ...> and -- this is again' | sed -e 's/ --.*$//' this is a line with this is not and

grep

答案 1 :(得分:1)

您可以将sed命令用作sed -i '/\-\-/d' <filename>

答案 2 :(得分:0)

尝试在shell上使用sed

sed -e "s/(--.*)//" sql.filename