shell脚本--在带本月日期的文件中搜索包含某个关键字,并返回含
因为工作中每天都需要根据某个关键字,在包含每天日期的一批文件中搜索某个关键字,找出这批文件中包含关键字的文件,并返回文件名。 脚本名为h.sh, # cat h.sh 1 #!/bin/sh 2 sdate=`date +%Y%m` 3 dir=`find ./ -name "BLACKLIST_${sdate}*"` 4 for i in $dir 5 do 6 if grep $1 $i ; 7 then echo $i 8 else 9 echo $i ‘>>>> no found‘ 10 fi 11done 第2行: 第3行: 用find语句查找当前目录(如果不放在文件所在的目录要将程序中第3行的./更改为你目标文件所在目录),所有文件名以BLACKLIST_201904开头的文件,比如现在是201904, 则完整find语句是:find ./ -name "BLACKLIST_201904*" ,${sdate}就是201904,即一个变量值的替换 并将这些文件名放在dir变量中 5~11行: 第6行:if语句是逐个判断dir中保存的文件中是否有我们作为第一个参数送进来的。$1就是jack,当然也可以传入多个值$2,$3……,这里就要更改if语句了。$i就是目前正在搜索的文件。比如当前日期是20190422,我们的文件是.txt后缀结尾的,那么$i就有可能是BLACKLIST_20190401.txt、BLACKLIST_20190402.txt、……BLACKLIST_20190422.txt这22个文件中的任何一个。如果jack在,就只显示文件名,如果不在就打印提示:在文件中XXX中没有发现 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |