我需要一个内联sed命令将“ string”替换为“ varchar(30)”,但是创建表语法可以在多行上。

有没有办法告诉sed(或用awk?)在不以“ INSERT INTO ...”开头的行上进行替换?

我的数据中可能出现“字符串”一词,但我不希望数据损坏。

sed -i 's/string/varchar(30)/g'


我知道基本的正则表达式,但这超出了我的范围。谢谢!

最佳答案

sed -i '/^INSERT INTO/! s/string/varchar(30)/g'


sed man page


  在地址(或地址范围)之后和命令之前,可以插入!,它指定仅当地址(或地址范围)不匹配时才执行命令。

10-07 14:15
查看更多