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
查找指定的一类文件里面包含指定字符串的文件,并删除