gpt4 book ai didi

regex - Sed 命令找不到我的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:22 25 4
gpt4 key购买 nike

我必须“清理”一些 Oracle DDL 脚本,删除表空间声明,并且我必须自动执行此操作。我尝试使用“sed”linux 命令和正则表达式来实现它,但正则表达式似乎不起作用:

输入:

CREATE TABLE "DTCUSR"."AFP_RESOURCE" 
( "RSC_ID" NUMBER(12,0),
"RSC_CLASS" VARCHAR2(5 BYTE),
"RSC_NAME" VARCHAR2(8 BYTE),
"RSC_MD5" VARCHAR2(32 BYTE),
"RSC_TYPE" VARCHAR2(50 BYTE),
"RSC_INSERT_DATE" TIMESTAMP (6)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DTC_DATA" ;

想出去:

CREATE TABLE "DTCUSR"."AFP_RESOURCE" 
( "RSC_ID" NUMBER(12,0),
"RSC_CLASS" VARCHAR2(5 BYTE),
"RSC_NAME" VARCHAR2(8 BYTE),
"RSC_MD5" VARCHAR2(32 BYTE),
"RSC_TYPE" VARCHAR2(50 BYTE),
"RSC_INSERT_DATE" TIMESTAMP (6)
);

linux命令

$ sed "/(?s)SEGMENT CREATION.*?;/;/" afp_resource.sql

但是不起作用,commad 输出与输入相同;如果我在 Sublime 或 regex web tool 上尝试正则表达式,正则表达式找到我想要的东西

最佳答案

我可以想到规避的两步过程

 sed -i '/SEGMENT/,$ d' afp_resource.sql
sed -i '$ a\);' afp_resource.sql

关于regex - Sed 命令找不到我的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com