从品牌网站建设到网络营销策划,从策略到执行的一站式服务
在工作中我们有在Ruby和SHELL中如何遍历指定目录的文件的需求,这个应该如何来实现呢?网上的方法也非常之多,我们可以拿来参考参考,如下边的traverse.rb文件内容所示:
贵池ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
#!/usr/bin/ruby def traverse(path) if File.directory?(path) puts "Dirs:" + path Dir.foreach(path) do |file| if file != "." and file != ".." traverse(path + "/" + file) end end else puts "Files:" + path end end traverse("d:/vmware")
其实ruby中已经定义了Find.find方法来处理这种情况,上面的ruby程序可以用其方法来实现,代码显得更为整洁,如下所示:
#!/usr/bin/ruby require 'find' Find.find("/usr/local/src") do |filename| p filename end
我们还可以利用Find.find方法来输出ruby中可用的rb库,如下所示:
#!/usr/bin/ruby require "find" def printrb $:.each do |dir| next if dir == "." next if dir == ".." Find.find(dir) do |f| if f =~ /\.rb$/i puts f end end end end printrb
如果我们用shell脚本来实现类似需求,比如想遍历/usr/local/src目录里面包含的所有文件(包括子目录),那么应该如何实现呢?这里也会用到递归的思想,脚本如下:
#!/bin/bash function traverse(){ for file in `ls $1` do if [ -d $1"/"$file ] then traverse $1"/"$file else echo $1"/"$file fi done } traverse "/usr/local/src"
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图