您的位置:首页 > 运维架构 > Linux

Linux运维必会(二) - 遍历文件夹,并筛选符合条件的文件名

2016-07-08 00:27 796 查看
这个例子需要一些微不足道的 shell 脚本知识:

Bash 正则表达式. 详细介绍请看http://codingstandards.iteye.com/blog/1208526
Bash v3版本及以上(bash -version 查看版本)内置对正则表达式匹配的支持,语法如下
[[ "$STR" =~ 'aa(b{2,3}[xyz])cc' ]]


注意:
=~
号两边的空格不可省略!

式子右边用单引号,双引号都可以.

两对中括号不可省略

中括号前后各有一个空格, 不可省略!

下面的脚本循环判断同目录下的文件名是否满足条件, 满足输出到屏幕

#!/bin/bash
directory="./"
#遍历子目录
for file_name in `ls $directory`
do
if [ -d $directory/$file_name ];then
echo $file_name is dir
else
if [[ $file_name =~ '正则表达式' ]]; then
echo $file_name
fi
fi
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息