gpt4 book ai didi

linux - 如何使用 shell 脚本查找起始括号和相应结束括号之间的模式

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:40 32 4
gpt4 key购买 nike

我有一个包含以下模式的文件

CREATE TABLE hello
(
a string CHARACTER SET ISO88591 NO
DEFAULT -- NOT NULL
, b int NO DEFAULT -- NOT NULL
, c string NO DEFAULT -- NOT NULL
, d string CHARACTER SET ISO88591 DEFAULT
NULL
, e string CHARACTER SET ISO88591 DEFAULT
NULL
, f string CHARACTER SET ISO88591 DEFAULT
NULL
, CONSTRAINT xyz(hello)
, CONSTRAINT xyz CHECK
(hello how r u)
)

输出应该是

a string
, b int
, c string
, d string
, e string
, f string

我尝试使用以下命令来提取模式黑白括号,但由于存在内括号,因此无法找到匹配项。我需要找到第一个括号和最后一个括号的所有黑白文本。

cat file.txt | grep -i '(.*)'
awk '/(.*)/' file.txt

感谢这方面的任何帮助

最佳答案

解析 SQL 始终是一件困惑的事情。理想情况下,您会使用 SQL 解析器,但它们基本上是由 unobtanium 制成的。所以我们进行了黑客攻击。像下面这样的东西在 awk 中可以工作:

/^[(]/ {
parsing = 1
next;
}

/^[)]/ {
parsing = 0
}

parsing == 0 {
next
}

/string|int/ {
name = $1
type = $2
}

/^,.+string|int/ {
name = $2
type = $3
}

{ print name, type }

关于linux - 如何使用 shell 脚本查找起始括号和相应结束括号之间的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467084/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com