gpt4 book ai didi

linux - 有没有更快的方法来 grep 模式或提高 while 循环的速度?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:31 24 4
gpt4 key购买 nike

此循环需要时间,因为 ma​​in_file 中缺少条目。

while read line;do  
cat main_file | grep "$line";
done<file

cat file

pattern_1
pattern_2

cat main_file
main pattern_1
main pattern_2
main pattern_2

最佳答案

您当前的方法非常低效 - 整个循环可以在单个 grep 中完成,使用 -f 选项。

grep -Fxf file main_file
  • -Ffile 中的行视为字符串,而不是模式
  • -x 寻找完全匹配的行(如果那是你想要的)
  • -f filefile 中读取行并在 main_file
  • 中查找它们

只要文件很小,上述方法就可以很好地工作。对于较大的文件,使用 awk:

awk 'FNR==NR {hash[$1]; next} $2 in hash' file main_file

有关详细信息,请查看此帖子 - 它还有其他解决方案:

关于linux - 有没有更快的方法来 grep 模式或提高 while 循环的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625529/

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