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中有任何建议吗?