我要添加下面的行到〜/ .bashrc中:檢查文件中是否存在一條特定行?
export PATH:/var/lib/gems/1.9.1/bin:$PATH
但只有當它不存在。
如何檢查該行是否已經存在?
我要添加下面的行到〜/ .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
你提的問題大概意思是說:
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|
由於回車是在這個時代供不應求.. 。
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}/] }