有辦法找出內容符合多條件的檔案嗎? - Linux

Table of Contents

在LINUX中,用egrep "123|abc"可以找出檔案內有“123”或“abc"的檔案,
但若我想要找出一個目錄下,檔案內容同時有“123”和“abc"(不一定會在同一行)的
話,
有沒有什麼好的處理方式呢?

--

All Comments

Delia avatarDelia2017-04-01
grep -q 'abc' $filename && grep -q '123' $filename
Faithe avatarFaithe2017-04-03
grep -Rl --null "123" /path/ 2>/dev/null | \
Steve avatarSteve2017-04-03
xargs -0 grep -l "root"
Bethany avatarBethany2017-04-08
egrep -oH '123|ab' *|sed -e 's/:.*//'|sort|uniq -d
Megan avatarMegan2017-04-12
更正...
Yedda avatarYedda2017-04-16
egrep -oH '123|abc' *|sort|uniq|sed -e 's/:.*//'|\
uniq -d
Tristan Cohan avatarTristan Cohan2017-04-20
只有一個就直接 grep 呀,超過兩個不能用 uniq -d
Olga avatarOlga2017-04-23
是 if grep 'abc' $filename && grep '123' $filename
then echo $filename
fi
Vanessa avatarVanessa2017-04-28
egrep "123\|abc"
James avatarJames2017-05-02
pcregrep -M '123.*(\n|.)*abc' file.log
Elma avatarElma2017-05-03
grep -e "123.*(\n|.)*abc" file.log <-- 這沒試過
Ingrid avatarIngrid2017-05-08
pcregrep -M '123.*\n.*abc' file.log
Linda avatarLinda2017-05-11
grep -Pzo "(?s)^(\s*)\N*main.*?{.*?^\1}" *.c
Valerie avatarValerie2017-05-15
上面的方法好像都只能找到 先出現123 , 再出現abc
Jake avatarJake2017-05-15
https://goo.gl/hMD68d 這篇有說怎麼做 (但我看不懂)
Oliver avatarOliver2017-05-17
grep -P '^(abc.*123|123.*abc)'
Carolina Franco avatarCarolina Franco2017-05-18
這個應該可以去regexp板問看看
Jack avatarJack2017-05-21
devide & conquer 如何?先找出有 A 式樣的檔案再從中找
有 B 式樣的檔案
*divide
Quintina avatarQuintina2017-05-26
grep -Pzl '(?s)(?=.23)(?=.1)(?=.*ab)' *
Poppy avatarPoppy2017-05-31
更正 grep -Pzl '(?s)(?=.*23)(?=.*1)(?=.*ab)' *
Isabella avatarIsabella2017-06-03
但以目前的例子應該寫成:
Hamiltion avatarHamiltion2017-06-08
grep -Pzl '(?s)(?=.*abc)(?=.*123)' *
Edith avatarEdith2017-06-11
Robert avatarRobert2017-06-13
Andrew avatarAndrew2017-06-15