Sed 删除两个参数之间无法正常工作的任何文本

Sed 删除两个参数之间无法正常工作的任何文本,sed,Sed,我需要删除和(以及“,”之间的任何数据 我目前正在使用下面的命令 sed -i '/,/,/(/{//!d;s/ ,$//}' test1.txt cat test1.txt 创建集合表格EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC ,没有退路, 不,在日记之前, 不,在日记之后, 校验和=默认值, 默认合并块比率 ( EXTRAC_RUN_ID整数不为空 电流输出 创建集合表格EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC ,没有退路(

我需要删除和(以及“,”之间的任何数据

我目前正在使用下面的命令

sed -i '/,/,/(/{//!d;s/ ,$//}' test1.txt
cat test1.txt

创建集合表格EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC

,没有退路, 不,在日记之前, 不,在日记之后, 校验和=默认值, 默认合并块比率

( EXTRAC_RUN_ID整数不为空

电流输出

创建集合表格EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC

,没有退路( EXTRAC_RUN_ID整数不为空

预期输出:

创建集合表格EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC

( EXTRAC_RUN_ID整数不为空

这里怎么了? 有什么建议吗

提前感谢。

两种方法:

--GNUsed方法:

sed -z 's/,[^(]*//' test1.txt
awk -v RS= '{ sub(/,[^(]+/,"",$0) }1' test1.txt

--GNUawk方法:

sed -z 's/,[^(]*//' test1.txt
awk -v RS= '{ sub(/,[^(]+/,"",$0) }1' test1.txt

输出:

CREATE SET TABLE EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC
( EXTRC_RUN_ID INTEGER NOT NULL,

请确保在此处发布正确的、可复制的示例。显示“sed:invalid option--'z'”。我当时没有使用GNU sed吗?忽略-z并运行该命令只会删除逗号“,”单独使用,并且中间没有任何数据。@lfc_07,
-z
选项在这种基于GNU的方法中是至关重要的。您是否安装了
gawk
?是的,准确地说是GNU awk 3.1.7版本。gawk中有任何建议吗?