最适合在Unix终端传递参数的方法

时间:2017-04-05 11:16:30

标签: unix grep find xargs

我试图在目录中找到一些带有给定字符串的文件,其中有很多子目录和文件,

我知道regex / glob表达式匹配其他命令的目标文件和中间目录的名称。示例目录列表命令输出:

1234
5321
4546
2456

我尝试使用find和grep进行此操作,但我无法通过正确的目录名称来查找使用xargs。最后的命令是:

commandOutputDirs | xargs -d\n find /path/to/search/*/{} -type f -name "*fileName*"

但我得到以下错误= find: paths must precede expression: 1234

当我尝试使用echo而不是找到

  

/路径/到/搜索/ * / {}

评估为

  

/ path / to / search / path 1234

我是否需要以其他方式传递这些参数才能达到同样的效果?

1 个答案:

答案 0 :(得分:0)

假设您有一个包含

的文件pattern.txt
usr
etc
var
你可以这样做:

 while read line; do find /path/$line -type f -name "*filename*  < pattern.txt

如果命令行输出如下所示:

commandLineOutput | while read line; do find /path/$line -type f -name "*filename*