使用Sed复制和修改行

时间:2018-03-20 07:00:00

标签: sed

让我们将SQL文件视为包含以下语句的输入(即myTable.sql):

EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM ' || myTable || ' FOR SCHEMA1.' || myTable;

是否有一种简单的方法(使用sed)复制此语句并按如下方式修改它们?

EXECUTE IMMEDIATE 'CREATE OR REPLACE SYNONYM SCHEMA2.' || myTable || ' FOR SCHEMA1.' || myTable;
EXECUTE IMMEDIATE 'CREATE OR REPLACE SYNONYM SCHEMA3.' || myTable || ' FOR SCHEMA1.' || myTable;

非常感谢你的帮助。 微米。

*编辑*

第一部分可以这样解决:

sed -i -e '/PUBLIC SYNONYM/p' myTable.sql

第二部分是关于两个搜索和替换命令:

sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA2./' myTable.sql
sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA3./' myTable.sql

我认为我的问题已得到解答。如果您发现更有效的内容,请随时回复。欢呼声。

1 个答案:

答案 0 :(得分:0)

第一部分可以这样解决:

sed -i -e '/PUBLIC SYNONYM/p' myTable.sql

第二部分是关于两个搜索和替换命令:

sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA2./' myTable.sql
sed -i -e '0,/PUBLIC SYNONYM/s/PUBLIC SYNONYM /SYNONYM SCHEMA3./' myTable.sql

我认为我的问题已得到解答。如果您发现更有效的内容,请随时回复。欢呼声。