【发布时间】:2016-09-10 03:34:32
【问题描述】:
我有一些看起来像这样的目录和文件:
/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 文件,我正在尝试计算第三列,并从高到低排序。
现在我能够做到这一点,但仅限于每个目录 x 内。例如,如果我运行这个:
cd /my/directories/directory0/
cat *.txt | awk -F "," '{print $3}' | sort | uniq -c | sort -nr > finalOutput.txt
然后我得到了我想要的,但只有那个目录中的数据。我想将所有 /my/directories/ 子目录中的所有内容都集中到一个文件中。
我尝试使用ls 或find 来完成此操作,但无法正常工作。我知道你可以这样递归 cat,类似于:
find /my/directories/ -name '*.txt' -exec cat {} \; > finalOutput.txt
但是,我无法让它与多管道命令一起使用。任何帮助表示赞赏。
【问题讨论】:
-
find /my/directories/ -name '*.txt' -exec cat {} \; | awk ...有什么问题? -
这并没有错。我只是不知道 -exec 标志之后的正确语法。这是一个有效的答案,因为它显示了我的语法错误。