[英]Check if one specific line exists in a file?
我想將以下行添加到〜/ .bashrc中:
export PATH:/var/lib/gems/1.9.1/bin:$PATH
但僅當它不存在時。
我如何檢查該行是否已經存在?
這可能吧?
File.open(".bashrc").each_line do |line|
if (line == "foo")
return true
end
end
return false
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
由於在這個時代,回程車的供應不足。
return File.open('.bashrc').lines.any? { |line| line.chomp == 'foo'}
我只是遇到了這個問題,希望檢查是否已經存在特定的Rails路線:
route = "mount Blorgh::Engine"
File.open('config/routes.rb').each_line.any? {|line| line[/#{route}/] }
您的問題可能意味着:
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|
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.