2010-08-19 81 views

回答

2

這可能嗎?

File.open(".bashrc").each_line do |line| 
    if (line == "foo") 
     return true 
    end 
end 
return false 
2
path_seen = false 
File.open(~/.bashrc) do |f| 
    f.grep(/export PATH:\/var\/lib\/gems\/1.9.1\/bin:\$PATHg/) do |line| 
     path_seen = true 
    end 
end 
0

你提的問題大概意思是說:

export PATH=/var/lib/gems/1.9.1/bin:$PATH 

(注意第一個 ':' 應該是一個 '=')

此外,在創建正則表達式時許多'/'(根據@ennuikiller的解決方案),您可能會喜歡使用%r {}構造函數而不是//。例如:

f.grep(/export PATH:\/var\/lib\/gems\/1.9.1\/bin:\$PATHg/) do |line| 

變得讀取容易(輕微修正 - 移除的後「G」):

f.grep(%r{export PATH:/var/lib/gems/1.9.1/bin:\$PATH}) do |line| 
1

由於回車是在這個時代供不應求.. 。

return File.open('.bashrc').lines.any? { |line| line.chomp == 'foo'} 
0

我只是碰到了這個問題來找檢查一個特定的Rails的路線已經存在:

route = "mount Blorgh::Engine" 
File.open('config/routes.rb').each_line.any? {|line| line[/#{route}/] } 
相關問題