Linux XARGS、GREP和GNU并行

Linux XARGS、GREP和GNU并行,linux,grep,parallel-processing,xargs,io-redirection,Linux,Grep,Parallel Processing,Xargs,Io Redirection,作为一名linux新手,我很难理解文本搜索的一些基本方面 我想做到的是: 我有一个文件,其中包含指向特定路径的绝对路径列表 我想浏览一下这个文件列表,并对特定的模式进行grep 如果在该文件中找到该模式,我想将其重定向到另一个输出文件 由于这些文件分布在NFS上,我想使用GNU并行加速查找 所以..我做的如下: cat filepaths|xargs -iSomePath echo grep -Pl '\d+,\d+,\d+,\d+' \"SomePath\"> FoundPatterns

作为一名linux新手,我很难理解文本搜索的一些基本方面

我想做到的是: 我有一个文件,其中包含指向特定路径的绝对路径列表

  • 我想浏览一下这个文件列表,并对特定的模式进行grep
  • 如果在该文件中找到该模式,我想将其重定向到另一个输出文件
  • 由于这些文件分布在NFS上,我想使用GNU并行加速查找
  • 所以..我做的如下:

    cat filepaths|xargs -iSomePath echo grep -Pl '\d+,\d+,\d+,\d+' \"SomePath\"> FoundPatternsInFile.out| parallel -v -j 30
    
    运行此命令时,反复出现以下错误:

    grep: "/path/to/file/name": No such file or directory
    
    文件和路径已存在。有人能指出我对xargs和grep的错误吗

    谢谢


    在本例中,您甚至可以省略{}。

    我想我意识到这里可能会发生什么,我将SomePath变量括在引号中。Grep找不到括在引号内的路径。删除引号并运行命令cat filepath | xargs-isompath echo grep-Pl'\d+,\d+,\d+,\d+,\d+'SomePath>FoundPatternsInFile.out | parallel-v-j 30似乎解决了这个问题。仅供参考--
    xargs
    
    cat filepaths | parallel -j 30 grep -Pl '\d+,\d+,\d+,\d+' {} > FoundPatternsInFile.out