bash - 如何在 SHELL 中使用字符串匹配条件从字符串中提取子字符串
问题描述
我必须从中提取一个子字符串。
- Session establishment complete on server localhost/127.0.0.1:2183, sessionid =
0x1000c22ff510020, negotiated timeout = 120000 WATCHER:: WatchedEvent state:SyncConnected
type:None path:null [zk: localhost:2183(CONNECTED) 0] addauth digest super:testing [zk:
localhost:2183(CONNECTED) 1] ls /live_nodes [rn3-gcs02.rno.foo.com:8985_solr, rn3-
gcsb.rno.foo.com:8985_solr] [zk: localhost:2183(CONNECTED) 2]
要提取的子字符串是
[rn3-gcs02.rno.foo.com:8985_solr,rn3-gcsb.rno.foo.com:8985_solr]
它是一个动态子字符串,可以有 2 个或更多元素
解决方案
re='ls /live_nodes (\[[^]]+\])'
[[ $s =~ $re ]] && echo "${BASH_REMATCH[1]}"
...发出,您的输入$s
:
[rn3-gcs02.rno.foo.com:8985_solr, rn3-
gcsb.rno.foo.com:8985_solr]
推荐阅读
- node.js - PDFkit 在新页面上添加内容
- macos - Shell 脚本 - 使用带有 if 语句的 source 命令
- c - How to search in a queue?
- c++ - clang-cl doesn't allow operator-overloads for __m128 because it's not a class or enum? Workaround to make it like MSVC?
- javascript - Unable to publish global array variable
- c++ - Globally declared char array is ambiguous when passed on to the function
- php - 使用子控制器的替代路由方法的缺点是什么?
- mysql - 我的 Confluence 服务器在重启后无法启动 - “无法确定您的数据库存储引擎”
- html - 在悬停表格单元格上,根据悬停单元格的行高突出显示所有相应的单元格/行
- laravel - 在 laravel 中实现 reCaptcha V3 的问题