我有以下结构:
/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'的空文件。为什么文件为空?我该如何解决这个问题?
答案 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
对我来说很好看 - 不知道为什么输出文件为零。