删除一整行,保留UNIX中的最后一个特定字符

1tu0hz3e  于 2023-10-18  发布在  Unix
关注(0)|答案(1)|浏览(205)

我想删除文件中以关键字CONSTRAINT开头的所有行。但如果行的结尾是“))”我想保留“)在最后。
对于双精度浮点数,使用输入:

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

我想要输出:

)

)

我试图找到答案,但没有结果。

0g0grzrc

0g0grzrc1#

由于我不知道你是否有sed版本支持超过POSIX BREs,这将使用POSIX BREs。
两个表达:

sed -e 's/^CONSTRAINT.*))$/)/' -e 's/^CONSTRAINT.*//'

1.匹配以CONSTRAINT开始并以))结束的行。将这些行中的内容替换为单个)
1.如果行中剩下的内容以CONSTRAINT开头,则将其全部删除。

相关问题