Unix 复杂目录问题

Unix Complex Directory Issue

我有一个名为 Server 的主文件夹,其中包含 15(1...f) worker 个文件夹,并且在每个 worker(1...f) 文件夹中有 slave(1...f) 个子文件夹。每个 slave 个子文件夹中大约有 2000 个文件。

插图视图:

/服务器

/1  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/2  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/3  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/4  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/5  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/6  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/7  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/8  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/9  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/a  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/b  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/c  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/d  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/e  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
/f  ----> 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

我需要grep所有文件夹中的文件中的一个名为"router"的特定字符串一次全部写入一个文件/cat所有文件中文件夹并将其写入一个文件。

我试过猫,

#cat **/* > new_file.txt 

我得到了 bash: /bin/cat: Argument list too long 作为回应

我试过 grep,

#grep -e "router" **/* > new_file.txt

我再次收到 bash: /bin/cat: Argument list too long 作为回应。

我知道这是一个复杂的目录问题。这无法更改,因为数据是从在线资源中获取的。有人可以帮助如何获取从文件夹的字符串 "router" 的特定行并将其重定向到新文件吗?

使用find代替grep

find . -name "*" -type f -exec grep "router" {} \; > new_file.txt

它将在 (.) 目录中找到每个文件 ("*"),然后为每个文件找到 grep "router"

此致

克劳迪奥