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

时间:2017-09-12 07:13:21

标签: sed

我需要删除和之间的所有数据,以及","以及它。

我目前正在使用以下命令。

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

cat test1.txt

  

创建设置表EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC

     

,没有FALLBACK,        没有在期刊之前,        没有后期,        CHECKSUM =默认,        DEFAULT MERGEBLOCKRATIO

     

(         EXTRC_RUN_ID INTEGER NOT NULL,

当前输出

  

创建设置表EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC

     

,没有FALLBACK(         EXTRC_RUN_ID INTEGER NOT NULL,

预期输出:

  

创建设置表EDW_EXTRC_TAB.AVER_MED_CLM_HDR_EXTRC

     

(         EXTRC_RUN_ID INTEGER NOT NULL,

这里有什么问题? 有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

两种方法:

- GNU sed 方法:

sed -z 's/,[^(]*//' test1.txt

- GNU awk 方法:

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,