利用sed命令在匹配某特定字符串的行尾添加字符串

这个问题寻找了好久,只是自己很菜不知道。
网上找到的都不符合自己的需求,后面自己尝试后得到正确的。
我需求是在匹配的行最后添加一个分号。
原始数据:

CREATE VIEW public.myview (id, name) AS SELECT id, name FROM mshing.public.test_table

我需要改成:

CREATE VIEW public.myview (id, name) AS SELECT id, name FROM mshing.public.test_table;

就是制作一份表结构,没有分号是不行的,view名和表名是随时变的。
所以我的思路是先匹配CREATE VIEW,然后再到这一行末尾添加分号;,多行也适用,mshing.sql是存放表结构的文件名

sed -i '/CREATE VIEW/ s/$/&;/' mshing.sql

嗯完美解决

如果是需要到最后一行加上;

直接匹配最后一行

sed -i '$ s/$/&;/' mshing.sql


此方法也适用于其他类似场景

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注