首先是有一个已知的路径,现在要遍历该路径下的所有文件及文件夹,因此定义了一个列表,用于存放遍历到的文件名。...递归遍历如下:将已知路径和列表数组作为参数传递, public void Director(string dir,List list) { DirectoryInfo d...d.GetDirectories();//文件夹 foreach (FileInfo f in files) { list.Add(f.Name);//添加文件名到列表中...} //获取子文件夹内的文件列表,递归遍历 foreach (DirectoryInfo dd in directs) {...Director(dd.FullName, list); } } 这样就得到了一个列表,其中存储了所有的文件名,如果要对某一个文件进行操作,可以循环查找: foreach (string
对于Python语言,在编写代码的时候如果不用循环尽量不用循环,语言内置的一些函数其处理效率往往更高。...下面举个例子进行说明:比如我们有两个相同大小的列表(list),需要同时对两个列表的对应元素进行判断,把满足要求的删除。 ? x, y是两个列表,上面的例子将x,y对应相等的元素进行删除操作。...其中内部的zip将x,y打包,外部的zip将处理后的元素拆包。注意:外部的zip函数拆包需要对变量添加*号。 注意到处理以后的数据变成了tuple。 是不是很简单,没有循环,但是对数据进行了遍历。
4个坐标的组合; 2、遍历所有4个点坐标组合,根据4个点组成的四边形首先判断两条对角线的中点是否重合,不重合则一定不是正方形; 3、根据点的坐标判断两条邻边是否相等以及两条邻边长度的平方和是否等于对象线长度的平方和...; 4、若同时满足条件2和4,则该组四个点组成正方形,正方形计数加1,同时将该坐标组合添加到一个新的List中; 5、遍历结束,输出正方形计数并遍历打印所有能组成正方形的List中的坐标组合。...pointStr: pointStrArray){ String[] pointString = pointStr.split(","); // 拆分的数组第一个值为横坐标...,表示至少有3个点在同一条直线上,必定不能组成正方形 } if(index==1){ // 正方形中两对相互组成对角线的两个点的横纵坐标值满足相等...个坐标中选出4个点一共有C(4,9)共21种组合,从程序的输出结果我们可以看到它们只能组成5个正方形,把他们放到坐标系中验证5组4个点的组合都可以组成正方形。
当列表中的所有值都被遍历完后,循环结束。 在Shell脚本中,for 循环用于遍历一个列表中的元素,并执行指定的命令或代码块。它的语法形式简单明了,通常用于处理数组元素或者进行固定次数的循环操作。...可以是一个数组、文件名模式(通配符)、命令的输出结果,或者是通过大括号扩展生成的列表。 示例: 遍历数组元素: #!.../bin/bash # 定义一个数组 fruits=("apple" "banana" "cherry") # 使用 for 循环遍历数组元素 for fruit in "${fruits[@]}"...do echo "Fruit: $fruit" done 在这个示例中,for fruit in "${fruits[@]}" 遍历了数组 fruits 中的每一个元素,并将当前元素赋值给变量.../bin/bash # 使用 for 循环遍历当前目录下的所有文件 for file in * do echo "File: $file" done 这个示例中,* 通配符用于获取当前目录下的所有文件名
bash命令实现各种常用的功能和鲜为人知的用法。...字符串 去掉字符串首尾的空格 去掉字符串中的空格并用空格分割 在字符串中使用正则表达式 分割字符串 字符串大小写转换 字符串反转 检查字符串中是否包含某个子串 检查字符串是否以某个子串结尾 …… 数组...反转数组 去除数组中重复元素 随机排列数组元素 …… 循环 以数值作为循环条件 以数值变量作为循环条件 以数组作为循环条件 遍历文件内容 遍历文件和目录 …… 文件处理 将文件内容读取到字符串中 将文件内容以行为单位读取到数组中...读取文件的前n行 读取文件的最后n行 创建空文件 …… 文件路径 获取全路径中的目录名 获取全路径中的文件名 注意,这里仅仅是目录的一小部分,原项目中还有很多内容,包括一些内置变量的获取,系统信息的获取...总结 实际上里面很多相关功能也有一些bash命令可以直接实现,但是大部分内容作为一个速查的渠道还是不错的,有兴趣的可以去查看: https://github.com/dylanaraps/pure-bash-bible
= "" ]; do echo "剩下 $# 个参数" echo "参数:$1" shift done 上面例子中,shift命令每次移除当前第一个参数,从而通过while循环遍历所有参数。...分号是 Bash 的命令分隔符。它们也可以写成两行,这时不需要分号。...until condition; do commands done for...in 循环 for...in循环用于遍历列表的每一项。...,就可以用来遍历数组。...数组activities实际包含5个元素,但是for...in循环直接遍历{activities[@]},会导致返回7个结果。
n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名: vim /export/sh/param.sh...; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3"; 为脚本设置可执行权限,并执行脚本,输出结果如下所示...遍历 根目录 下的内容 for f in `ls /`; do echo $f done 3 while 语句 while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件...数组 1 定义数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(。 与大部分编程语言类似,数组元素的下标由0开始。...[2]=value2 2 读取数组 读取数组元素值的一般格式是: ${array_name[index]} 2.1 实例 #!
如输出命令ls -l *的结果中,文件大小和文件名: [root@centos7 temp]# ls -l * | awk '{print $5,$NF}' 13 b.txt 58 c.txt 12 d.txt...这里省略了action,整条awk语句表示打印文件大小大于20字节并且文件名以txt结尾的行。...,数组的索引都被视为字符串(即关联数组),可以使用for循环遍历数组元素 如输出文件/etc/passwd中各种登录shell及其总数量 #注意数组赋值及for循环遍历数组的写法 [root@centos7...1000::/home/learner:/bin/bash #三目运算符也可以嵌套,例子略 选项-f file表示从file中读取awk指令 #打印斐波那契数列前十项 [root@centos7 temp...(注意逐行处理b.txt的同时也在逐行从c.txt中获得记录并覆盖$0,当getline先遇到eof时将输出空行) [root@centos7 temp]# awk '{getline
遍历删除文本内路径上文件 windows上测试可以安装Gitlinux中,准备删除文件的脚本deleteFile.sh,picture.txt保存待删除文件的文件路径,picture文件夹下面有三张待删除图片...#----------------------------Test---------------------------------- #for循环读取文件内容并保存到picture数组 n=1 for...do picture[$n]=$i #echo "picture[$n]: $i" #rm -rf $picture[$n] n=`expr $n 1` done #while循环读取文件内容并保存到...delete数组 i=1 while read line do delete[$i]="$line" i=`expr $i 1` done < $filename #遍历数组并删除文件 #...遍历删除路径下带有指定字符串的文件 系统生成的zip和xlsx文件带有日期(如20191212xxxx.zip),一段时间后需要删除之前无用的文件,或者移除文件到/recycleBin回收站中。 #!
本章讨论bash shell的循环命令for、while和until 13.1 for命令 重复执行一系列命令在编程中很常见。 bash shell提供了for命令,允许你创建一个遍历一系列值的循环。...13.1.1 读取列表中的值 每次for命令遍历值列表,它都会将列表中的下一个值赋给$var变量。最后一次迭代后,$var变量的值会在shell脚本中剩余部分一直保持有效。...将单引号转义 2)使用双引号来定义用到单引号的值 在某个值两边使用双引号时,shell并不会将双引号当成值的一部分 13.1.3 从变量读取列表 将一系列的值都集中存储在了一个变量中,然后需要遍历变量中的整个列表...就可以IFS=: 如果需要指定多个字符,只需要将它们在赋值行中串起来就行。...IFS=$’\n’:;” 将换行符、冒号、分号、双引号作为字段分隔符 13.1.6 用通配符读取目录 可以用for命令来自动遍历目录中的文件。进行此操作时,必须在文件名或路径名中使用通配符。
for循环遍历hosts文件中的ip地址 通过ssh host cmd 实现目的ip命令 eval命令判断并打印命令执行结果 for循环遍历完hosts则脚本运行结束 3、批量分发脚本原理 1和2接收参数文件名和分发路径...for循环遍历hosts文件中的ip地址 通过scp 1 host: eval命令判断并打印命令执行结果 for循环遍历完hosts则脚本运行结束 二、批处理命令脚本 1、创建 /usr/shell/.../bin/bash echo "------start execyting the shell script------" # awk 读取hosts文件的第一部分ip地址 hosts=$(cat /usr.../bin/bash echo "------start execyting the shell script------" # awk 读取hosts文件的第一部分ip地址 hosts=$(cat /usr.../shell/hosts | awk '{print $1}') # 传递的第一个参数,文件名称 file=$1 # 传递的第二个参数,目录路径 dir=$2 # for循环读取文件 for host
当一个登录shell退出时,bash读取并执行~/.bash_logout文件,如果此文件存在。当一个交互的非登录shell启动后,bash读取并执行~/.bashrc文件。...--rcfile file参数强制bash读取并执行指定的file而不是默认的~/.bashrc。...在此模式下,交互shells扩展变量ENV,从以此为文件名的文件中读取命令并执行。bash会探测自己是不是被远程shell守护程序运行(通常是rshd)。...如果是,它会读取并执行~/.bashrc中的命令。但是rshd一般不会用rc相关参数调用shell,也不会允许指定这些参数。...-a array 将单词清单放入 array 数组中 first last 读取输入到第一个空格或回车,将输入的第一个单词放入 first 中,而其他的则放在 last 中 -p prompt 打印提示
花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。...数组 因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。...由于hash不是顺序存储,因此在显示数组内容时会发现,它们并不是按照你预料的顺序显示出来的。数组和变量一样,都是在使用时自动创建的,awk也同样会自动判断其存储的是数字还是字符串。...一般而言,awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等。...这里使用for循环遍历数组 awk编程的内容极多,这里只罗列简单常用的用法,更多请参考 http://www.gnu.org/software/gawk/manual/gawk.html
grep -xq $line a;then echo $line >>c fi done wc -l c 脚本通过循环读取文件b中的每一行,判断该行,如果该行不属于文件a,则输出该行内容到文件...c中,循环结束后用wc统计文件c的行数。...#收集结果并赋值给数组 read -a result <<<$(eval cat "${file_list[@]}") #输出 echo "${result[@]}" 脚本中需要注意的地方在于数组的赋值和...5、数组交、并、差集 假定有需要取两个数组的交集(或并集、差集),简单的做法无非是两个循环对比两个数组中的每个值,取得相同的部分: #!...但本例中,需要重点理解的是:IFS在数组扩展中的特性,命令grep和sort的运用,以及进程替换的使用。
/bin/bash 3. cat 文件 |grep -a "关键词" >> result.log 备注:把文件中包含关键词的行输出到result.log中。 ...语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。 ...输出列的顺序和数目不受选项的顺序和数目的影响。总是按下述顺序显示并且每项最多一列。 行数、字数、字节数、文件名 如果命令行中没有文件名,则输出中不出现文件名。...tt.txt开头的N多个文件 -l 表示按行切割 tt.txt 表示切割后的零碎文件的前缀 29、循环读取行 读取文件每行并输出 方法一: Shell代码 1. #!...也就是说将所有文件名20个为一组,由rm -rf删除,这样就不会超过命令行的长度了 31、for循环总结 a. for((i=1;i<=10;i++));do echo $(expr $i \*
花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。...数组 因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。...由于hash不是顺序存储,因此在显示数组内容时会发现,它们并不是按照你预料的顺序显示出来的。数组和变量一样,都是在使用时自动创建的,awk也同样会自动判断其存储的是数字还是字符串。...一般而言,awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等。 ...这里使用for循环遍历数组 awk编程的内容极多,这里只罗列简单常用的用法,更多请参考 http://www.gnu.org/software/gawk/manual/gawk.html
花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。...数组 因为awk中数组的下标可以是数字和字母,数组的下标通常被称为关键字(key)。值和关键字都存储在内部的一张针对key/value应用hash的表格里。...由于hash不是顺序存储,因此在显示数组内容时会发现,它们并不是按照你预料的顺序显示出来的。数组和变量一样,都是在使用时自动创建的,awk也同样会自动判断其存储的是数字还是字符串。...一般而言,awk中的数组用来从记录中收集信息,可以用于计算总和、统计单词以及跟踪模板被匹配的次数等等。...这里使用for循环遍历数组
领取专属 10元无门槛券
手把手带您无忧上云