首页 > 解决方案 > sed 模式似乎不匹配/替换

问题描述

我正在尝试用模式替换 sed

s/^\(ENGINE.*\)DEFAULT CHARSET=utf8mb4$/\1/g

但它似乎不起作用。有人可以告诉我我做错了什么吗?

我正在尝试替换

ENGINE=InnoDB AUTO_INCREMENT=19391 DEFAULT CHARSET=utf8mb4

ENGINE=InnoDB AUTO_INCREMENT=19391

标签: regexlinuxsed

解决方案


编辑:根据 OP 的要求,现在也添加 1 个解决方案。

sed 's/\().*ENGINE[^ ]*\)\( DEFAULT.*\)/\1/'  Input_file

以下sed可能对您有所帮助。

sed 's/ DEFAULT.*//'  Input_file

如果您想将输出保存到 Input_file 本身,请使用sed -i上述代码中的选项。同样在备份原始 Input_file 并将输出保存到 Input_file 的情况下,然后使用sed -i.bak相同的。


推荐阅读