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

这个例子需要一些微不足道的 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

你可能感兴趣的:(linux,shell,正则表达式,bash)