当前位置: 技术问答>linux和unix
如何实现这个多重搜索,找出同时包含多个字符串的文件
来源: 互联网 发布时间:2016-05-13
本文导语: 在多个文件中要搜索多个特定字符串, 比如找出同时包含字符串A B C的文件 还有个复杂的搜索条件,不知道能不能实现: 找出包含 TABLENAME=BOR UPDATE=YES 的文件 这两行是成对出现,并且是挨着的。 文件非常多,不...
在多个文件中要搜索多个特定字符串,
比如找出同时包含字符串A B C的文件
还有个复杂的搜索条件,不知道能不能实现:
找出包含
TABLENAME=BOR
UPDATE=YES
的文件
这两行是成对出现,并且是挨着的。
文件非常多,不是挨个挨个看能解决得了。
比如找出同时包含字符串A B C的文件
还有个复杂的搜索条件,不知道能不能实现:
找出包含
TABLENAME=BOR
UPDATE=YES
的文件
这两行是成对出现,并且是挨着的。
文件非常多,不是挨个挨个看能解决得了。
|
1.第一个问题用个小脚本,yourdir代表多个文件所在的目录
for FILE1 in `grep -l "A" yourdir/*`
do
for FILE2 in `grep -l "B" $FILE1`
do
grep -l "C" $FILE2
done
done
2.用一句话,yourdir代表多个文件所在的目录
grep -A 1 "TABLENAME=BOR" yourdir/* | grep "UPDATE=YES" | sort -u
for FILE1 in `grep -l "A" yourdir/*`
do
for FILE2 in `grep -l "B" $FILE1`
do
grep -l "C" $FILE2
done
done
2.用一句话,yourdir代表多个文件所在的目录
grep -A 1 "TABLENAME=BOR" yourdir/* | grep "UPDATE=YES" | sort -u
|
以上适于用Linux环境下