我有一个巨大的文件,里面有这样的行
INSERT INTO mytable (),()...
我想用只替换那些以INSERT INTO mytable
开头的线路
/* INSERT INTO mytable (),()... */
我知道有很多可能性,包括好的vim搜索替换宏,但我想在命令行中完成。
这是awk版本:
awk '{ gsub("^(INSERT.*)","/* & */"); print $0 }'
这是假设INSERT是行中的第一个字符。如果可以有前导空格,请使用以下内容:
awk '{ gsub("^([[:space:]]*INSERT.*)","/* & */"); print $0 }'
这也应该适用于非GNU awk。我在Linux和AIX上进行了测试。
试试这个sed的一行:
sed 's#^INSERT INTO mytable.*#/* & */#' file
sed -e "s/^INSERT INTO mytable.*//* & *//" file.txt
另一种sed可能性