有一个简短的问题:我有一个像这样的文件:
ip-10-0-12-84.eu-west-1.compute.internal, master, instnum=1, Running
.....
.....
ip-10-0-26-118.eu-west-1.compute.internal, master_rabbit, instnum=4, Running
ip-10-0-26-116.eu-west-1.compute.internal, master_rabbit, instnum=5, Running
.....
ip-10-0-26-68.eu-west-1.compute.internal, sql_master, instnum=9, Running
ip-10-0-13-244.eu-west-1.compute.internal, nat, instnum=2, Running
我的目标是读取文件,跳过以#
开头的注释、空行和包含nat
或master
的行。我尝试了以下代码:
open('/tmp/runnings.txt').each do |line|
next if line =~ /(^\s*(#|$)|nat|master)/
这个方法大部分可行,但会把包含master_rabbit
和sql_master
的行也删除。我该如何只选中master
而不是其他任何组合?能否在同一行完成操作?谢谢!
nat
也是这样吗?还是你也想匹配national
? - Tim Pietzcker国家级别
,但这是一个好点。你的答案已经覆盖了这一点。 - MacUsers