grep - grep 命令未检索完整功能
问题描述
我正在尝试to_char()
使用命令从文件中 grep 单词grep -E -o -i "TO_CHAR\(+..[^)]+\)"
,但无法获得完整的功能
TO_CHAR(123)
TO_CHAR(NVL(B.DATE,SYSDATE)
TO_CHAR(SUM(NVL(AMT,0)
一个文件包含以下几行:
TO_CHAR(DATE,'DD-MM-YYYY HH24:MI:SS')
to_char(aaa)
TO_CHAR('asc')
我需要选择不包含逗号的单词。它应该只获取to_char(aaa)
并且TO_CHAR('asc')
不应该选择TO_CHAR(DATE,'DD-MM-YYYY HH24:MI:SS')
,因为它有一个逗号。
我试过使用:
TO_CHAR(.[^,)]*)
但它正在选择TO_CHAR(DATE
。
解决方案
这个问题不清楚,但是根据您在评论中提供的更多信息,您似乎正在尝试匹配,
括号内不包含逗号的字符串()
?
如果我的假设是正确的,那么这个 grep 代码应该能够提取匹配。
grep -E '.*\(.[^,]*\)' input_file
输入
TO_CHAR(123)
TO_CHAR(NVL(B.DATE,SYSDATE)
TO_CHAR(SUM(NVL(AMT,0)TO_CHAR(DATE,'DD-MM-YYYY HH24:MI:SS')
to_char(aaa)
TO_CHAR('asc')
输出
TO_CHAR(123)
to_char(aaa)
TO_CHAR('asc')
推荐阅读
- stripe-payments - Stripe:您必须至少请求以下功能之一
- c# - Azure Functions 2 本地部署 MissingMethodException [更新]
- c# - C# 和 CefSharp 中的 Selenium WebDriver
- flutter - 如何在 Flutter 中完全隐藏密码输入?
- java - 如何在 Java 中为单元测试创建“FTPS”模拟服务器,出现错误 - javax.net.ssl.SSLException: 502 Command not implemented: AUTH
- reactjs - 如果属性更改发生在嵌套对象中,React Redux 不会识别 prop 更改
- r - 如何将大型 640x 640 矩阵沿对角线分割许多(20-30)倍
- python - 烧瓶“[Errno 113] 没有路由到主机”,我不知道为什么
- sed - 使用 sed 将一个字符串替换为另一个具有正斜杠的字符串(在两个字符串中)
- communication - MODBUS中的起始地址和从地址有什么区别?