shell 遍历目录 批量解压文件名含有某字符串及特定后缀的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 遍历目录 批量解压文件名含有某字符串及特定后缀的文件相关的知识,希望对你有一定的参考价值。

#!/bin/sh
mkdir  /home/zhengyk/Desktop/tmp  #创建临时文件夹,用来存放解压后的文件
#mkdir  /home/zhengyk/Desktop/local  #创建临时文件夹,用来存放过滤结果

list_alldir(){   
	for file in $1/*
do
if [ -d $file ]; then
	list_alldir $file
else
	filename=${file##*/}  # 从路径中取出文件名及后缀
echo "$filename"
if [[ `echo $filename | awk -F‘.‘ ‘$0~/.*123.*zip/{print $3}‘` = "zip" ]]    # "123"为文件名里的子串
#elif [[ `echo $file | awk -F‘.‘ ‘$0~/.*123.*zip/{print ${file##*.}}‘` = "zip" ]]
then
#tar jxf $file -C /home/zhengyk/Desktop/tmp   #解压文件ddd
unzip -o  $file -d /home/zhengyk/Desktop/tmp   #解压文件
#grep_word /home/zhengyk/Desktop/tmp   #执行过滤关键字的函数
#rm -rf  /home/zhengyk/Desktop/tmp/*     #清理现场,为解压下一个文件做准备!
	echo "$file ..........ok!"   #显示被处理的bz2文件!
fi
fi
done
}

grep_word(){
for fileb in $1/*
do
if [ -f $fileb ]; then
# “bkeep”是你想要过滤的关键字,根据实际,自行设定
grep -H "t" $fileb >> /home/zhengyk/Desktop/tmp.txt   #H 结果中显示文件名,方便我们阅读!
else
	grep_word $fileb
fi
done
}

if [ $# -gt 0 ]
then
list_alldir "$1"
else
echo "please input:./list_alldir.sh dirpath"
fi



参考链接:http://www.360doc.com/content/10/0928/16/3234041_57087955.shtml


本文出自 “大白菜” 博客,请务必保留此出处http://dreamylights.blog.51cto.com/1163218/1755231

以上是关于shell 遍历目录 批量解压文件名含有某字符串及特定后缀的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何用bat遍历文件,并找到文件名包含某字符的文件吗?

Linux(shell)遍历目录删除指定文件,解决文件夹名称带空格问题

Python递归遍历文件夹批量替换某字符串改名

Python递归遍历文件夹批量替换某字符串改名

C语言遍历目录中的文件

shell遍历多个文件夹并进行批量修改文件名