Bash:查找并连接文件

时间:2017-02-13 17:50:44

标签: bash csv

我有以下结构:

/home/
├── DIR1/
│   └── file_ab.csv
├── DIR2/
│   └── file_cd.csv
└── DIR3/
    └── file3_ef.csv

其中file_**.csv包含浮动行,每个DIR都有不同的浮点数。

我想获取所有file_**.csv文件的内容并将它们连接起来。

我找到了这个答案here

find /home -type f -name '*.csv' -exec cat {} \; > pl_parameters

但我得到一个名为' pl_parameters'的空文件。为什么文件为空?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

find /home/DIR* -name 'file*csv' |xargs cat > output.csv

find /home/DIR* -name '*csv'为您提供文件绝对路径。

xargs cat将迭代文件并cat打印文件内容

答案 1 :(得分:0)

使用Bash 4.0+,您可以使用globstar并使用更直接的命令:

shopt -s globstar
cd /home
cat **/*.csv > pl_parameters

**/扩展到当前目录下的整个目录树。

你的命令:

find /home -type f -name '*.csv' -exec cat {} \; > pl_parameters

对我来说很好看 - 不知道为什么输出文件为零。