You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unix中删除以CONSTRAINT开头的行,保留行尾为"))"的最后一个")"

处理CONSTRAINT行的文本转换方案

需求说明

删除文件中所有以CONSTRAINT关键字开头的行;若该行结尾为)),则保留结尾的一个)。

输入示例

CONSTRAINT FK_TESTA  ( CD_AAA ))
CONSTRAINT FK_TESTB ( CD_BBB ),
CONSTRAINT FK_TESTD  ( CD_DDD ))
CONSTRAINT FK_TESTC ( CD_CCC ),

期望输出

)

)

实现命令(sed)

用sed命令可以直接完成这个文本处理:

sed -E '/^CONSTRAINT/ {
    s/.*\)\)$/)/
    t
    s/.*//
}' your_file.txt

命令解释

  • /^CONSTRAINT/:仅匹配以CONSTRAINT开头的行
  • 第一个替换s/.*\)\)$/)/:如果行尾是)),就把整行替换成单个)
  • t:如果上面的替换成功执行,就跳过后续命令(避免把已经替换成)的行再清空)
  • 第二个替换s/.*//:对不满足行尾是))的CONSTRAINT行,直接清空整行

测试验证

把输入示例保存为test.txt,执行上述命令后,输出结果和期望完全一致。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:46:06