我如何递归执行具有多个管道的猫

How do I recursively perform a cat with multiple pipes

我有一些目录和文件如下所示:

/my/directories/directory0/ | -->File1.txt | -->File2.txt /my/directories/directory1/ | -->File1.txt | -->File2.txt /my/directories/directory2/ | -->File1.txt | -->File2.txt /my/directories/directory3/ | -->File1.txt | -->File2.txt

这些是 CSV 文件,我正在尝试计算第 3 列,并从高到低排序。

现在我能够完成此操作,但仅限于每个目录 x。例如,如果我 运行 这个:

cd /my/directories/directory0/ cat *.txt | awk -F "," '{print }' | sort | uniq -c | sort -nr > finalOutput.txt

然后我得到了我想要的,但只有那个目录中的数据。我想将所有 /my/directories/ 子目录中的所有内容都放入一个文件中。

我曾尝试使用 lsfind 来完成此操作,但无法正常工作。我知道你可以用这种方式递归 cat,类似于:

find /my/directories/ -name '*.txt' -exec cat {} \; > finalOutput.txt

但是,我无法让它与多管道命令一起使用。感谢任何帮助。

尝试使用 xargs:

$ find . -name "f?" | xargs awk -F, '{ print  }' | sort | uniq -c | sort -nr
4 3
1 z
1 three
1 c
1 5

$ find . -name "f?" -exec echo "File: " {} \; -exec cat {} \; -exec echo "----" \;
File:  ./d0/f1
1,2,3
----
File:  ./d0/f2
3,4,5
----
File:  ./d1/f1
8,9,3
----
File:  ./d1/f2
a,b,c
----
File:  ./d2/f1
x,y,z
----
File:  ./d2/f2
one,two,three
----
File:  ./d3/f1
red,yellow,3
----
File:  ./d3/f2
1,2,3
----
find . -name "File*" | xargs cut -d, -f3 | sort | uniq -c | sort -nr