首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >把Grep和Regex结合起来?

把Grep和Regex结合起来?
EN

Stack Overflow用户
提问于 2015-05-21 13:42:09
回答 1查看 42关注 0票数 0

有一个较小的网络元素的列表,我试图在stdout中列出。我的小脚本一直工作到regex,在收到提示后,我想搜索它,列出了整个行。

示例:

请进入一个区域

输入:Bei

输出

ipc-br 640-r-br-01

ipc-br 640-r-br-02

ipc-北京640-r-br-03

而不是:

北640-01

北京640-02

北京640-03

另外,如果我在输入中点击"Enter“,它会列出所有的设备。

代码语言:javascript
运行
复制
lines = IO.readlines("/usr/local/bin/braslist.txt")

devices = []
str = File.read('braslist.txt')

while true
print "Please enter a region. If you want to exit enter exit "
input = gets.chomp
exit if input == 'exit'

#Opens file and greps for input
File.open("braslist.txt", "r+") do |f|
    f.each do |line|
     devices += line.split(" ").grep(/#{input}/i)
     input.scan(/^ipc-(?<bng>[a-z]{3}\d{3})-r-br(?<nr>-\d{2})$/).map(&:join)
        end
end


puts devices
puts "#{devices.length} network elements found"
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 14:09:12

您可以尝试循环查看grep的结果如下:

代码语言:javascript
运行
复制
File.open("braslist.txt", "r+") do |f|
   f.each do |line|
     line.split(" ").grep(/#{input}/i).each do |string|
       match = string.match(/^ipc-(?<bng>[a-z]{3}\d{3})-r-br(?<nr>-\d{2})$/)
       devices << match[:bng] + match[:nr]
     end
   end
end

(我也认为使用匹配而不是扫描可以使事情变得更清晰)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30375503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档