Articles of search

使用命令grep并find

我怎样才能使grep命令find由locate命令find的路由指定的文件中的某些单词? locate my.cnf | grep user (我希望这个grep命令在locate命令find的文件中search单词“user”)

二进制大文件C – 问题查找

这个问题经常在StackOverflow上重复出现,但是我已经阅读了所有以前的相关答案,并且在这个问题上略有转折。 我有一个23Gb文件,其中包含4.75亿行相同大小的行,每行包含一个40个字符的散列码,后跟一个标识符(整数)。 我有一个传入哈希代码stream – 总计数十亿 – 每个传入的哈希代码我需要find它并打印出相应的标识符。 这项工作,虽然大,只需要做一次。 该文件太大,我不能读入内存,所以我一直在试图以下面的方式使用mmap: codes = (char *) mmap(0,statbuf.st_size,PROT_READ,MAP_SHARED,codefile,0); 然后,我只是使用基于代码中的地址的地址算术来进行二进制search。 这似乎开始精美的工作,并在几秒钟内产生几百万个标识符,使用100%的CPU,但后来看起来随机的一些时间,它放慢了爬行。 当我使用ps查看进程时,使用100%的cpu将状态“R”更改为使用1%cpu的状态“D”(磁盘绑定)。 这是不可重复的 – 我可以在相同的数据上再次启动进程,并且在“慢速爬行”发生之前可能运行5秒或10秒。 昨天晚上,在发生这种事之前,我已经有一分钟的时间了。 一切都是只读的,我没有试图写入文件,我已经停止了所有其他进程(我控制)在机器上。 这是一个现代的红帽企业Linux 64位机器。 有谁知道为什么这个过程变成了磁盘绑定,以及如何阻止它? 更新: 感谢大家回答,并为你的想法; 我以前没有尝试过所有的各种改进,因为我想知道如果我不正确地使用mmap。 但是答案的要点似乎是,除非我能把所有东西都记在脑后,否则我将不可避免地陷入困境。 所以我把散列码的大小压缩到了不会造成任何重复的开头前缀的大小 – 前15个字符就足够了。 然后,我把结果文件存入内存,并分别以大约20亿次的批量运行哈希代码。

不区分大小写在文件名linux中用“string”search文件

现在,我知道使用的是: find / -name string.* 这是区分大小写的,它不会find名为的文件: 1string.x STRing.x string1.x 如何search以便在search中返回以上所有内容?

如何在linux中find包含string的行

我在Linux中有一个文件,我想显示包含该文件中的特定string的行,如何做到这一点?

快速文本search超过600,000个文件

我有一个PHP,Linux服务器。 它有一个名为notes_docs的文件夹,其中包含60多万个txt文件。 notes_docs的文件夹结构如下所示 – – notes_docs – files_txt – 20170831 – 1_837837472_abc_file.txt – 1_579374743_abc2_file.txt – 1_291838733_uridjdh.txt – 1_482737439_a8weele.txt – 1_733839474_dejsde.txt – 20170830 – 20170829 我必须提供一个可以在浏览器上显示结果的快速文本search工具。 因此,如果我的用户search“纽约”,那么所有在他们中有“纽约”的文件都应该返回到一个数组中。 如果用户search“foo”,则应返回所有带有“foo”的文件。 我已经尝试过使用scandir和Directory Iterator的代码,这太慢了。 search需要一分多钟,即使search没有完成。 我试过Ubuntu的find ,这又慢又花了一分钟才完成。 因为有太多的文件夹迭代,并且notes_docs当前大小超过20 GB。 我可以使用任何解决scheme,使其更快,是值得欢迎的。 我可以进行devise更改,将我的PHP代码整合到另一个语言代码中。 在极端的情况下,我也可以做基础设施的改变(如在内存中使用)。 我想知道工业界人士如何做到这一点? 在确实,邮编招聘人员都提供文件search。 请注意,我有2GB – 4GB的内存,所以在RAM上加载所有的文件是不能接受的。 编辑 – 下面所有的input都很好。 对于那些迟来的人来说,我们最终使用了Lucene进行索引和文本search。 它performance非常好

前两个结果来自ls命令

我正在使用ls -l -t获取按时间sorting的目录中的文件列表。 我想将search结果限制在列表中的前2个文件。 这可能吗? 我已经尝试过使用grep,而我挣扎着。

通过batch filesearch并replace多个xml文件中的多个string

我有一些XML文件(大约100,一些在子文件夹中)的ID需要更改。 因此,我有一个大约1.100行的Excel列表,左边的列是旧的ID名称,右边的​​列是新的应该replace旧的列。 我发现这个脚本在Stackoverflow(并改变了一点): @rem replaceids.bat ECHO off SETLOCAL enabledelayedexpansion SET source=%1 SET target=%2 IF EXIST %target% DEL /f %target% FOR /f "delims=" %%i IN ('FINDSTR . %source%') DO ( SET line=%%i SET line=!line:ö=oe! SET line=!line:ä=ae! SET line=!line:ü=ue! ECHO !line! >> %target% ) 这是原始链接: 批量replace多个不同的string 然后我创build了另一个batch file来调用上面的文件并通过我的文件运行它: for /R %%F in (*.xml) do ( replaceids.bat "%%~dpnxF" […]

如何访问由Windowssearch或Copernic桌面search等桌面search引擎生成的文件的关键字

我正在尝试命令我的部门的一个共同的文件共享文件,其中包含数千个各种文件types的文件。 我的想法是按内容相关的关键字sorting。 Windows提供的关键字文件属性中只有less数文件包含有效的信息。 我的想法是让一些桌面search引擎索引文件(及其内容),然后使用索引中生成的关键字。 问题是我不知道如何从search索引中读取这些生成的关键字。 Microsoft和Copernic似乎都没有提供关于如何访问索引文件的任何信息。 MSDN只提供有关如何直接从您的程序查询Windowssearch引擎的信息,但结果只包含Windows文件属性和文件信息,但不包含用于索引的那些生成的关键字。 哥白尼似乎并没有提供任何信息。 我非常感谢任何想法如何访问这些生成的关键字。 先谢谢你!

从文件夹中的文本文件中search关键字列表

我已经在一个文本文件中编译了一个db对象名的列表,每行一个名字。 我想知道每个名字,它在哪里使用。 目标search是一组包含源代码的子文件夹的文件夹。 在放弃寻找工具来开始创build自己的工具之前,也许你可以帮助指出一个现有的工具。 理想情况下,它应该是一个Windows桌面应用程序。 我以前没有用过grep。

Windowsregistry文件的影子副本

我需要find磁盘上的所有Windowsregistry文件,包括来自Windows影子副本的备份registry数据。 问题是我不知道这些文件的位置。 在互联网上,我发现这个命令vssadmin list shadowstorage但它返回给我这个 For volume: (C:)\\?\Volume{ba406d28-f092-11dc-b3d7-806e6f6e6963}\ Shadow Copy Storage volume: (C:)\\?\Volume{ba406d28-f092-11dc-b3d7-806e6f6e6963}\ 这是什么? 那些文件真的在哪里? 我怎样才能访问它们? 如果我扫描硬盘驱动器的二进制文件与“REGF”幻数在一开始就足以find所有的registry数据? 添加 我从文件夹属性创build一个备份文件夹的快捷方式(以前的版本)这是什么快捷方式指向 \\localhost\C$\@GMT-2012.04.12-00.13.21\Windows\System32\config 看起来像包含备份文件,但它可以作为一个普通的目录访问它? 我如何在硬盘上find这些目录? 提前致谢。