我有一个名为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"
获取特定行并将其重定向到新文件?
答案 0 :(得分:2)
使用find
代替grep
find . -name "*" -type f -exec grep "router" {} \; > new_file.txt
它会找到("*"
)目录中的每个文件(.
),然后找到每个文件grep "router"
。
此致
克劳迪奥