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

时间: 2024-11-05 18:47:48

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

shell批量解压方法

第一: for tar in *.tar.gz;  do tar xvf $tar; done for tar in *.tar.bz2; do tar xvf $tar; done 第二:用tar命令批量解压某个文件夹下所有的tar.gz文件 ls *.tar.gz | xargs -n1 tar xzvf 第三:find -maxdepth 1 -name "*.gz"|xargs -i tar xvzf {} 这条命令可解压当前目录下的所有gz文件 批量解压是比较郁闷的事,以前尝

使用tar命令批量解压*.tar.gz文件

如何将/usr/local/src 下的所有*.tar.gz 文件批量解压到/usr/local/soft目录下 首先进入到/usr/local/soft ...#cd /usr/local/soft ...#ls /usr/local/usr/*.tar.gz | xargs -n1 tar xzvf

Linux脚本批量tar打包多个文件,批量解压多个文件

打包, 将要打包的文件列表放入c_list.txt里,如果是数据库的文件,可以用show tables;命令列出表名. #!/bin/bash #批量打包 for i in `cat c_list.txt`   do      tar -jcvf $i.tar.bz2 $i.frm $i.MYD $i.MYI   done 批量解压: #!/bin/bash   for i in `ls ./*.tar.gz`       do          tar -zxvf $i >/dev/null 

批量解压

ls *.tar.gz | xargs -n1 tar xzvf 一.批量解压bz2文件 find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {} 这条命令可解压当前目录下的所有bz2文件 批量解压是比较郁闷的事,以前尝试各种方法,甚至用脚本循环语句解压都不行 现在发现这条命令可以搞定,maxdepth表示搜索深度,1代表只搜索当前目录 二.批量解压gz文件(第二个方法最简单) 第一:for tar in *.tar.gz; do tar

shell脚本之文件批量解压

#!/bin/bash ls /tmp/install_file/*.tar.gz > install_packge_name.log for i in `cat install_packge_name.log` do tar -zxf $i -C /tmp/depress/ >> /dev/null #解压到/tmp/depress文件 done 原文地址:https://blog.51cto.com/11342825/2422370

zipfile 解压文件名 中文字符 乱码

unzip 中文文件名乱码 上传文件功能模块需求及BUG现象: 上传一个.zip格式的压缩文件 解压该test.zip压缩文件 解压zip文件时,遍历其目录下所有子文件,同时计算出单个子文件的有效代码行数 这时,发现解压后的子文件名中文出现乱码,如下图: BUG截图 解决思路 1.解压过程中,发现解压的文件内容正常: 2.使用的是第三方库zipfile模块,因为第1步得到正常的文件内容,本地业务逻辑可先不排查: 3.首先检查zipfile的源码中,针对编码/解码的执行过程仔细排查发现: zipf

python利用7z批量解压rar

一开始我使用了rarfile这个库,奈何对于含有密码的压缩包支持不好,在linux上不抛出异常:之后有又尝试了unrar..比rarfile还费劲.. 所以用了调用系统命令的方法,用7z来解压 通过apt可以安装上7z-full和7z的rar插件 有一个地方要注意 -o 和-p与后面的目录.密码之间没有空格!! 同样可以用这个代码暴力破解压缩包密码 # coding:utf-8 import os import zipfile import traceback import time impor

批量解压目录下的文件

#!/bin/bash cd lamp ls *.tar.bz2 > ls.list for TAR in `cat ls.list` do tar -jxf $TAR done

shell - 遍历目录并批量操作

需求:遍历所有apk安装包并批量安装. 思路:应该有很多种方式可以实现,但是对shell命令不熟悉,选了最简单的一种.find命令应该更简洁,日后更新. read -p "input path:" SPATH install() { filelist=`ls $SPATH` for filename in $filelist; do     if [ -f $filename ];then         echo File: $filename         adb install