2011-12-07 40 views
0

我需要递归合并根目录下的所有csv文件(任意层次结构),csv文件最后可能没有换行符,所以我想添加一个新的只要我合并两个文件就行。 如何在shell脚本中执行此操作?递归合并根目录下的所有文件

回答

1

使用发现有两个-exec选项:

find $YOUR_DIR -iname '*.csv' -exec cat {} \; -exec echo \; 

编辑:也是,也许如果你的CSV中有一个头,而不是cat,你可以使用sed 1d来说,拦截的第一行:

find $YOUR_DIR -iname '*.csv' -exec sed 1d {} \; -exec echo \; 
+0

有没有办法来回显每个文件的名称而不是一个新的行? – Quickredfox

+1

是的,将'\ {}'作为参数传递给echo,如下所示:'echo \ {} \;'。程序'find'将会用文件名替换这些括号,但是你需要将其转义,所以shell不会解释。 – elias

相关问题