linux 字符串查找

获取指定目录文件名包含指定字符的文件,然后遍历是否有包含特定字符串,有的话打出文件名 #!/bin/sh COMMAND=`find /data/home/ftp/data/20/201704/27/00 -name "*DISC_ACCE_COM*"` for filename in $COMMAND do gzip -dc $filename | grep "002871_ls_1203408185" if [ $? -ne 0 ]; then echo "NOT" else echo $filename fi done 查找文本中包含关键字的行: find ./ -name $filename |xargs grep -E "关键字" 查找当前目录下所有gz文件内包含的多个关键字所在行 gzip -dc *.* | grep '爬取完一轮任务'|grep 'SP1' gunzip -c file.gz | grep XXX 查找关键字前后n行 grep -n -Bn -An "关键字" file #匹配关键字的前n行与后n行 或操作 grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行 egrep '123|abc' filename // 用egrep同样可以实现 awk '/123|abc/' filename // awk 的实现方式 与操作 grep pattern1 files | grep pattern2 //显示既匹配 pattern1 又匹配 pattern2 的行。 其他操作 grep -i pattern files //不区分大小写地搜索。默认情况区分大小写, grep -l pattern files //只列出匹配的文件名, grep -L pattern files //列出不匹配的文件名, grep -w pattern files //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), grep -C number pattern files //匹配的上下文分别显示[number]行, grep非 关键字 grep -v '关键字' file 查找相关 1.find . -name '*PGAXLD*'| xargs grep -lrn 'as crashed and should be repair' 查找指定的一类文件里面包含指定字符串的文件,grep参数加了-l,表示仅列出文件名 2.find . -name '*PGAXLD*'| xargs grep -lrn 'as crashed and should be repair'|wc -l 查找指定的一类文件里面包含指定字符串的文件个数 3.ls -l|wc -l 统计当前目录下的文件个数 4.find . -name '*PGAXLD*'| xargs grep -lrn 'as crashed and should be repair'|xargs rm -rf 查找指定的一类文件里面包含指定字符串的文件,并删除
posted @ 2017-06-09 10:22  踏叶乘风  阅读(1143)  评论(0编辑  收藏  举报