首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

循环遍历bash中的文件并过滤目录名开头

可以使用以下的方法:

  1. 使用for循环遍历目录下的文件和目录:
代码语言:txt
复制
for file in *; do
    # 这里可以添加过滤条件
    if [ -f "$file" ]; then
        echo "$file 是一个文件"
    elif [ -d "$file" ]; then
        echo "$file 是一个目录"
    fi
done
  1. 添加过滤条件,只处理以特定字符串开头的目录名:
代码语言:txt
复制
for file in *; do
    if [ -d "$file" ] && [[ "$file" == "特定字符串"* ]]; then
        echo "$file 是一个以特定字符串开头的目录"
    fi
done

在上述示例中,*通配符用于匹配当前目录下的所有文件和目录。-f-d分别用于判断是否为文件和目录。[[ "$file" == "特定字符串"* ]]使用了模式匹配,判断目录名是否以特定字符串开头。

对于腾讯云相关产品和产品介绍链接地址,以下是一些可能与该问题相关的腾讯云产品:

  1. 云服务器(Elastic Compute Cloud,简称 CVM):提供可扩展的计算能力,用于部署和运行应用程序。产品介绍链接:https://cloud.tencent.com/product/cvm
  2. 对象存储(Cloud Object Storage,简称 COS):提供安全、稳定、低成本的云端存储服务,适用于存储和处理大规模非结构化数据。产品介绍链接:https://cloud.tencent.com/product/cos
  3. 人工智能平台(AI):提供丰富的人工智能服务和工具,包括图像识别、语音识别、自然语言处理等。产品介绍链接:https://cloud.tencent.com/product/ai

请注意,以上只是一些可能与该问题相关的腾讯云产品,具体的选择应根据实际需求和场景来确定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#如何遍历某个文件所有子文件和子文件夹(循环递归遍历多层),得到所有的文件名,存储在数组列表

D:\\test"; List nameList = new List(); Director(path,nameList); 响应(调用)代码如上面,比如写在某个事件。...首先是有一个已知路径,现在要遍历该路径下所有文件文件夹,因此定义了一个列表,用于存放遍历文件名。...d.GetDirectories();//文件夹 foreach (FileInfo f in files) { list.Add(f.Name);//添加文件名到列表...} //获取子文件夹内文件列表,递归遍历 foreach (DirectoryInfo dd in directs) {...Director(dd.FullName, list); } } 这样就得到了一个列表,其中存储了所有的文件名,如果要对某一个文件进行操作,可以循环查找: foreach (string

13.6K40

Shell 开发经验总结()

3)使用rm前确认 删除前备份删除对象信息,避免使用变量,直接使用文件目录名; 如果必须使用时,删除前,建议检查避免误删,删除目录和文件信息保留: 建议禁用find遍历根目录进行查找,同时删除前进行确认...4)For循环坑 for循环in条件按空格来区分,避免进入不正确或死循环。 5)while循环禁忌 如果还想使用循环变量,不要while结合管道使用。...6)慎用cp 这句话基本上正确,但同样有空格分词问题。所以应当用双引号: 但是如果凑巧文件名以 - 开头,这个文件名会被 cp 当作命令行选项来处理。...但是,当$var以 - 开头时依然会有问题。在较新bash你可以用下面的方法来代替,[[ ]]关键字能正确处理空白、空格、带横线等问题。...根据管道实现方式,file要么被截断成0字节,要么会无限增长直到填满整个硬盘。如果想改变原文件内容,只能先将输出写到临时文件再用mv命令。

50010

20.20 告警系统主脚本

/bin/bash #Written by aming. # 是否发送邮件开关 export send=1 # 过滤ip地址 export addr=`/sbin/ifconfig |grep -A1.../shares/load.sh #先检查配置文件是否需要监控502 if grep -q 'to_mon_502=1' $conf_file; then export log=`grep 'logfile.../bin/bash #Written by aming. # 是否发送邮件开关, export send=1 #只要把send 改成了1 ,就会给下面所有的监控项目都会发送邮件,export表示所有的变量会应用在所有的子脚本里.../ifconfig |grep -A1 "eno6777736: "|awk '/inet/ {print $2}'` dir=`pwd` # 找一下当前脚本所在目录 # 只需要最后一级目录名 last_dir.../shares/load.sh #先检查配置文件是否需要监控502,到配置文件遍历一遍,看看是否需要监控502 if grep -q 'to_mon_502=1' $conf_file; then

26720

运维老司机实战 Shell 开发经验总结

4)建议将命令行每个参数放在单引号、双引号,特别是rm、mv等可能对生产现有数据造成修改操作,建议使用垃圾箱策略:rm操作转意为mv操作,制定文件保存目录,以防回退,定期清理: ?...5)命令行参数需要使用‘*’、‘?’通配符,应依据最精确匹配原则,如能确定文件目录名前缀、后缀、扩展名及其他可识别关键字,须在参数包含该信息,如能确定文件、目录长度应使用‘?’...建议禁用find遍历根目录进行查找,同时删除前进行确认,避免多删或误删情况。 4)For循环坑 for循环in条件按空格来区分,避免进入不正确或死循环。 ?...但是,当$var以 - 开头时依然会有问题。在较新bash你可以用下面的方法来代替,[[ ]]关键字能正确处理空白、空格、带横线等问题。 ?...目录文件过多,会报参数太长错误无法删除,建议放在循环遍历删除: ?

1K30

linux下命令自动补全总结

1、compgen compgen [option] [word] compgen命令根据option生成与word可能匹配补全,打印到标准输出,这些选项可以是内建命令complete所支持任何选项...“-o filenames”:告诉“readline”生成文件名,以便进行与文件名相关处理,例如在目录名后面加上斜杠,引用特殊字符,去掉行尾空格,目的是用于shell函数。...“-W wordlist”:使用特殊变量IFS字符拆分单词列表wordlist,扩展拆分后每个单词,结果与待补全单词 匹配条目就是补全条目。...“-X filterpat”:filterpat是进行文件名扩展时使用模式,它作用于通过前面的选项和参数生成补全列表,并把每个与过滤模式匹配条目删除,模式前导叹号表示否定,这时会删除与过滤模式不匹配条目...COMPREPLY:一个数组变量,bash从这个变量读取可编程补全所调用shell函数生成补全条目。

6.4K50

awk(报告生成器),grep(文本过滤器),sed(流编辑器)使用入门

sed '2r /etc/issue' /etc/fstab sed '$r /etc/issue' /etc/fstab w file:将地址指定范围内容另存至另一文件。...; sed 's/^[[:space:]]+//g' /etc/grub.conf 2.替换/etc/inittab文件"id:3:initdefault:"一行3 sed 's#id:...sed '/^$/d' /etc/inittab 4.删除/etc/inittab文件开头#号 sed 's/^#//' 5.删除莫文件开头#号以及空白行。...sed 's/^[[:space:]]+//g' 6.删除某文件以空白字符后面跟#类开头空白字符以及# sed -r 's/^[[:space:]]+#//g' 7.取出一个文件路径目录名称...break和continue contine是遍历字段 next 提前结束对本行文本处理,接着处理下一行, 数组 数组下表是从1开始 awk[mon]=1 awk[tus]=2

1.3K110

一份shell“圣经”收好

bash命令实现各种常用功能和鲜为人知用法。...你也可以参考这里了解一下最基本用法《这些必备shell知识你都会了吗?》 为什么要使用内置bash来实现?...反转数组 去除数组重复元素 随机排列数组元素 …… 循环 以数值作为循环条件 以数值变量作为循环条件 以数组作为循环条件 遍历文件内容 遍历文件和目录 …… 文件处理 将文件内容读取到字符串文件内容以行为单位读取到数组...读取文件前n行 读取文件最后n行 创建空文件 …… 文件路径 获取全路径目录名 获取全路径文件名 注意,这里仅仅是目录一小部分,原项目中还有很多内容,包括一些内置变量获取,系统信息获取...总结 实际上里面很多相关功能也有一些bash命令可以直接实现,但是大部分内容作为一个速查渠道还是不错,有兴趣可以去查看: https://github.com/dylanaraps/pure-bash-bible

92210

常用shell命令归纳总结

ls -lg 同上,显示出文件所有者工作组名。 ls -R 显示出目录下以及其所有子目录文件名。 3.cd 改变工作目录 语法:cd [name] name:目录名、路径或目录缩写。...ls -l > list 将执行 “ls -l” 命令结果写入文件list 。 语法:命令>! 文件 将命令执行结果送至指定文件,若文件已经存在,则覆盖。...例子:想要执行 bash 脚本,查看 bash 调用流程,可以通过以下命令: bash -x test.sh echo [-neE] string 选项与参数: -n: 输出内容之后,不换行。...alias 别名,alias l=’ls -al’ export export 可以把 bash 变量向下带入子 bash (即子 bash 可以使用父 bash 变量),从而让子进程继承父进程环境变量...使 bash 读入指定 bash 程序文件依次执行文件所有语句。 exit 退出 Shell 程序,在 exit 之后可有选择地指定一个数位作为返回状态。

40120

批处理for命令用法_批处理主要解决

如果set包含通配符,则指定与目录名匹配,而不与文件名匹配。...示例 rem 循环输出当前目录下所有的目录名 for /d %%i in (*) do echo %%i rem 循环输出当前目录下,目录名最后字符为a所有目录名 for /d %%i in...for /r e:\ %%i in (.) do @echo %%i rem 遍历当前目录下所有文件显示完全路径(包括子目录) for /r e:\ %%i in (*) do @echo %...如果符号字符串最后一个字符星号,那么额外变量将在最后一个符号解析之后分配接受行保留文本。...批处理解释代码时,是先读出当前行代码解析,for及之后代码也是一次加载解释。这就导致for之后代码变量设置了并没有立即生效。如果想要立即生效,需要启用变量延迟。

1.8K30

Window 平台下添加 tree 命令

但是,一般为了开发方便,通常会使用更接近 Linux 命令 Git-Bash 作为常用命令行工具,然而 Git-Bash 却不支持 tree 命令。...tree -I pattern pattern表示想要过滤目录,例如 tree -I “node_modules”可以过滤掉node_modules这个文件夹 -a 显示所有文件和目录。...-i 不以阶梯状列出文件目录名称。 -I 不显示符合范本样式文件目录名称。 -l 如遇到性质为符号连接目录,直接列出该连接所指向原始目录。 -n 不在文件和目录清单加上色彩。...-N 直接列出文件目录名称,包括控制字符。 -p 列出权限标示。 -P 只显示符合范本样式文件目录名称。 -q 用”?”号取代控制字符,列出文件目录名称。...-x 将范围局限在现行文件系统,若指定目录下某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

1.5K22

搜索指令

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。...例: 搜索当前目录(含子目录,以下同),所有文件名以my开头文件。 $ find . -name 'my*' 搜索当前目录,所有文件名以my开头文件显示它们详细信息。...---- locate 配合数据库查看文件位置 语法: enter code herelocate 文件或者目录名称 例: 搜索etc目录下所有以sh开头文件。...$ locate /etc/sh 搜索用户主目录下,所有以m开头文件。 $ locate ~/m 搜索用户主目录下,所有以m开头文件,并且忽略大小写。...,这是因为linux系统会将 系统内所有文件都记录在一个数据库文件,当使用whereis和下面即将介绍locate时,会从数据库查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高

52620

linux基础命令介绍八:文本分析 awk

:x:1:1:bin:/bin:/sbin/nologin [root@centos7 temp]# 例子||表示逻辑或,语句表示:输出文件/etc/passwd以root开头行或者第二行。...(即关联数组),可以使用for循环遍历数组元素 如输出文件/etc/passwd各种登录shell及其总数量 #注意数组赋值及for循环遍历数组写法 [root@centos7 temp]# awk...如判断文件/etc/passwdUID大于500登录shell是否为/bin/bash,是则输出整行,否则输出UID为0行: #注意为避免混淆对目录分隔符进行了转义 [root@centos7 ~...#如按第一列(IP)分类拆分文件access.log,保存至ip.txt文件 [root@centos7 temp]# awk '{print > $1".txt"}' access.log [...(注意逐行处理b.txt同时也在逐行从c.txt获得记录覆盖$0,当getline先遇到eof时将输出空行) [root@centos7 temp]# awk '{getline

1.3K20

awk命令详解+示例

大家好,又见面了,我是你们朋友全栈君。 一、AWK介绍 AWK, 数据过滤工具 (类似于grep,比grep强大),属数据处理引擎,基于模式匹配检查输入文本,逐行处理输出。...-F: ‘3>=501&& 输出/etc/hosts映射文件内以127或者192开头记录: # awk -F: ‘/^127|^192/{print}’ /etc/hosts 列出100以内整数7...127或者192开头记录: # awk ‘/^(127|192)/’ /etc/hosts 示例:把/etc/passwd能登录用户及其密码(/etc/shadow)提取出来 找到使用bash作登录...提取用户名列表 NAME=`awk -F: ‘/:\/bin\/bash/{print 1}’ /etc/passwd` ## 通过for循环遍历用户名、查询密码记录,保存结果 for NAME in...,利用awk 判断符合条件数据,筛选出结果数据,输入到对应文件

2.4K10

几个shell编程小例子

1 遍历文件系统可以使用Shell脚本循环结构和相关命令来完成。下面是一个简单例子,展示如何使用Shell脚本来完成一次文件系统遍历。#!...我们使用ls命令获取指定路径下所有文件和目录,并在循环中处理每一个文件和目录。如果某个文件是一个目录,则会递归调用traverse函数来遍历子目录。..." "$file_path"; then echo "字符串存在于文件"else echo "字符串不存在于文件"fi调试方法:在脚本文件开头添加 set -x 行,该命令会将运行每一行都打印出来...脚本假设用户输入文件路径是正确,如果文件不存在,则会提示用户重新输入正确文件路径,退出脚本。3 使用循环读取某个目录下所有文件行数,总计行数#!.../bin/bash# 定义一个变量来存储总行数total_lines=0# 设置要统计行数目录dir="/path/to/directory"# 循环遍历目录下所有文件for file in $(find

26062

python标准库OS模块函数列表与实例全解

([size]) 把文件每一行作为一个list一个成员,返回这个list。...其实它内部是通过循环调用readline()来实现。如果提供size参数,size是表示读取内容总长,也就是说可能只读到文件一部分。...fp.write(str) 把str写到文件,write()并不会在str后加上一个换行符 fp.writelines(seq) 把seq内容全部写到文件(多行一次性写入)。...(unix系统) fp.tell() 返回文件操作标记的当前位置,以文件开头为原点 fp.next() 返回下一行,并将文件操作标记位移到下一行。...把一个file用于for … in file这样语句时,就是调用next()函数来实现遍历。 fp.seek(offset[,whence]) 将文件打操作标记移到offset位置。

65530

Linux入门常识总结

passwd 案例 root@kali:~# cat test.txt 123 abc 456 abc123 #adff 23#### \n## ## #adddff 查看非空行和非注释开头输出行号...root@kali:~# grep -Evn '^$|^#' test.txt 2:123 3:abc 4:456 6:abc123 10:23#### 11:\n## 过滤出带有某个关键词输入行号...-v 174.122.136.104 -output cleaned.log zip zip 命令 生成zip文件 被压缩文件 -m:将文件压缩加入压缩文件后,删除原始文件,即把文件移到压缩文件...,而非另行建立新压缩文件; -e 加密 -u:更换较新文件到压缩文件内; -A:调整可执行自动解压缩文件; -b:指定暂时存放文件目录; -D:压缩文件内不建立目录名称; -f:此参数效果和指定...; -j:只保存文件名称及其内容,而不存放任何目录名称; -J:删除压缩文件前面不必要数据; -k:使用MS-DOS兼容格式文件名称; -l:压缩文件时,把LF字符置换成LF+CR字符; -ll:压缩文件

1.1K31

Linux基础命令行使用技巧

[TOC] 0x00 基础简述 描述:本章主要学习记录了Linux命令行补全以及参数补全实现方法,还Linux执行过命令进行查看,让您想Hacker一样操作终端; 目录摘要: 补全: 何谓补全...在LinuxShell终端里我们也可以将前面的命令进行复用,下面我们将先从设置历史变量以及如何查看、搜索、以及前后移动历史说起; 设置历史记录 描述:无论是 bash 还是 zsh,都能够将我们已经执行过命令存储到一个文件...在文件名扩展结果包括以点(.)开头文件名 execfail off #如果一个非交互式shell不能执行指定给exec内置命令作为参数文件它不会退出,如果exec失败一个交互式shell...shell.允许以#开头词以及同一行其他字符被忽略.缺省为打开 lastpipe off lithist off #如果打开,且cmdhist选项也打开,多行命令讲用嵌入换行符保存到历史...file开头文件或目录 #示例2.zsh 也支持 - (减号) 这种区间表示,不过需要启用 braceccl 选项。

5.9K20

Linux基础命令行使用技巧

0x00 基础简述 描述:本章主要学习记录了Linux命令行补全以及参数补全实现方法,还Linux执行过命令进行查看,让您想Hacker一样操作终端; 目录摘要: 补全: 何谓补全: 即在我们使用...在LinuxShell终端里我们也可以将前面的命令进行复用,下面我们将先从设置历史变量以及如何查看、搜索、以及前后移动历史说起; 设置历史记录 描述:无论是 bash 还是 zsh,都能够将我们已经执行过命令存储到一个文件...~/.bashrc #历史文件报保存位置 HISTFILE=~/.bash_history #HISTFILE文件所能保存最大行数 HISTFILESIZE=1000 #Shell 记忆最大历史命令数...在文件名扩展结果包括以点(.)开头文件名 execfail off #如果一个非交互式shell不能执行指定给exec内置命令作为参数文件它不会退出,如果exec失败一个交互式shell...file开头文件或目录 #示例2.zsh 也支持 - (减号) 这种区间表示,不过需要启用 braceccl 选项。

5.8K63
领券