gpt4 book ai didi

linux - 我怎样才能找到包含多个模式的文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:16 24 4
gpt4 key购买 nike

我的文件夹和子文件夹中有很多文件。我有一个名为 patterns.txt 的文件,其中每行包含模式。现在我想找到匹配所有这些模式的文件。模式可以按任何顺序排列。

例子

模式.txt

userdata
"/"
"{a: 1}"

我的文件是json例子

"userdata": ""
"dir": "/"
"mdict": {a: 1}

我能够找到单个模式或最多两个模式,但不能像下面那样找到多个模式

find /logs/ -name "*.json" -exec  grep -rni 'userdata' /dev/null {} \; | cut -d":" -f1 | grep -rni '"/"'

是否可以从文件中获取模式并匹配所有模式?

最佳答案

对于 GNU grep,您可能需要 egrepgrep -E(仅 OR):

$ egrep -nri "userdata|dir|..."
$ grep -nriE "userdata|dir|..."

如果你想使用AND匹配多行:

$ find /logs/ -name "*.json" |xargs grep -izl "$(cat patterns.txt |tr '\n' 'x' |sed 's/x/.*/g')"

-z, --null-data a data line ends in 0 byte, not newline

-l, --files-with-matches print only names of FILEs containing matches

关于linux - 我怎样才能找到包含多个模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com