这个问题寻找了好久,只是自己很菜不知道。
网上找到的都不符合自己的需求,后面自己尝试后得到正确的。
我需求是在匹配的行最后添加一个分号。
原始数据:
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
此方法也适用于其他类似场景