我需要搜索路徑中的所有*.c
源文件以查找對*.h
標頭的引用以查找未使用的C標頭。我寫了一個ruby腳本,但感覺非常笨拙。使用ruby搜索路徑文件中的文本
我創建一個包含所有C文件和一個包含所有H文件的數組的數組。 我遍歷頭文件數組。對於每個標題,我打開每個C文件並查找對標題的引用。
有沒有更簡單或更好的方法?
require 'ftools'
require 'find'
# add a file search
class File
def self.find(dir, filename="*.*", subdirs=true)
Dir[ subdirs ? File.join(dir.split(/\\/), "**", filename) : File.join(dir.split(/\\/), filename) ]
end
end
files = File.find(".", "*.c", true)
headers = File.find(".", "*.h", true)
headers.each do |file|
#puts "Searching for #{file}(#{File.basename(file)})"
found = 0
files.each do |cfile|
#puts "searching in #{cfile}"
if File.read(cfile).downcase.include?(File.basename(file).downcase)
found += 1
end
end
puts "#{file} used #{found} times"
end
+1爲具有相同的想法,也爲細節代碼。 – YOU 2010-01-20 03:38:34