linux - XARGS、GREP 和 GNU 并行

标签 linux grep parallel-processing xargs io-redirection

作为一个 Linux 新手,我在理解文本搜索的一些基本方面时遇到了困难。

我想完成的事情如下: 我有一个文件,其中包含特定路径的绝对路径列表。

  1. 我想浏览这个文件列表并用 grep 查找特定模式
  2. 如果在该文件中找到该模式,我想将其重定向到不同的输出文件。
  3. 由于这些文件分散在 NFS 上,我想使用 GNU parallel 加快查找速度。

所以..我所做的如下:

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 时可能做错了什么吗?

谢谢

最佳答案

cat filepaths | parallel -j 30 grep -Pl '\d+,\d+,\d+,\d+' {} > FoundPatternsInFile.out

在这种情况下,您甚至可以省略 {}。

关于linux - XARGS、GREP 和 GNU 并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790570/

相关文章:

c++ - 尝试使用 C++ 在 Linux 上执行命令时被阻止

c++ - 编写时C++中的输入重定向问题

linux - 使用awk计算平均成绩

linux - 在一个文件中查找单词并在另一个文件中获取它们所在的行 : Bash script

linux - 如何杀死Linux中的特定进程?

cuda - NVIDIA GPU 的 CUDA 核心和 OpenCL 计算单元之间有什么关系?

c - ifconfig->which 的结果是我要提供给 TCP/IP 套接字的 IP 地址

linux - Apache 日志 grep、awk 或 sed

parallel-processing - Julia:远程工作人员的 SharedArray 变成一个 0 元素数组

android - 并行执行多个 AsyncTask