簡體   English   中英

檢查文件中是否存在某一行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM