awk:注释一个SQL语句

时间:2015-07-14 15:00:57

标签: regex awk

我有一个包含

等行的大文件
INSERT INTO mytable (),()...

我只想用

替换以INSERT INTO mytable开头的那些行
/* INSERT INTO mytable (),()... */

我知道有很多可能性,包括良好的vim搜索替换宏,但我想在命令行中进行。

2 个答案:

答案 0 :(得分:1)

试试这个sed one-liner:

sed 's#^INSERT INTO mytable.*#/* & */#' file

答案 1 :(得分:1)

这是awk版本:

 awk '{ gsub("^(INSERT.*)","/* & */"); print $0 }'

这假设INSERT是该行的第一个字符。如果可以有前导空格,请改用:

awk '{ gsub("^([[:space:]]*INSERT.*)","/* & */"); print $0 }'

这也适用于非GNU awk。我在Linux和AIX上测试过。