使用Shell脚本的搜索工具

时间:2010-12-15 06:00:50

标签: shell search

我的要求是编写一个工具,它将系统调用列表作为输入,然后在文件列表中搜索这些系统调用的出现次数。现在,我们已经确定了227个系统调用的列表。文件数量可能很大。我现在使用的算法是一个简单的嵌套for循环。可以理解,该计划需要很长时间才能完成。我正在使用shell脚本来实现这一目标。

有人可以建议一个更好/更有效的算法吗?

谢谢你, 阿迪亚。

2 个答案:

答案 0 :(得分:0)

什么类型的文件?源代码?可执行文件?此外,系统调用可以在运行时使用自修改代码构建,并且在许多情况下,系统调用是一个通用内核条目,其中系统调用号可能是动态“数据”,因此静态文件分析可能不完整的程度甚至有用吗?

如果你能识别出一般将系统调用与文件的其他内容区分开来的东西,你可以先检查一下,然后通过强力比较或某种树来找出它是哪一个。搜索范围。

另一个想法可能是看看你是否可以使用grep来识别一般的系统调用,并输出带有文件名和行号或任何你喜欢的调用,然后看看是否可以通过系统调用简单地对它进行排序。

您可能还希望使用像perl这样的语言,它具有一些很好的与哈希相关的功能。

答案 1 :(得分:0)

您的系统调用将位于名为calls的文件中,每行一个。您的文件列表位于名为list_of_files的文件中,每行一个。

cat list_of_files | xargs grep -f calls