在Linux中,如果我有一堆文本文件,是否有一个简单的脚本将它们合并到一个文件中?

时间:2011-05-24 20:58:53

标签: shell

例如假设我有1.csv,2.csv,...,20.csv。是否有一个简单的shell脚本,我可以将所有内容合并到merged.csv?

4 个答案:

答案 0 :(得分:6)

使用cat连接它们。

cat *.csv > merged.csv

正如@sarnold指出的那样,它会将它们连接起来。如果这很重要,请使用他的for循环建议,或者这个xargs管道:

ls *.csv | sort -n | xargs cat > merged.csv

答案 1 :(得分:2)

如果您想通过将一行中的行附加到另一行的行末尾来合并文件,那么您正在寻找paste

例如,如果file1包含:

1,One
2,Two

file2包含:

A,B,C
D,E,F

您可以运行paste -d , file1 file2来获取此信息:

1,One,A,B,C
2,Two,D,E,F

答案 2 :(得分:1)

简单的答案:

cat *.csv > merged.csv

将排序1.csv 10.csv 2.csv 20.csv 3.csv...。如果您希望按编号排序,则需要更多工作:

for i in `seq 1 20`; do cat ${i}.csv >> merged.csv ; done

答案 3 :(得分:0)

cat {1..20}.csv > merged.csv

这就是猫的制作!请注意,我在{1..20}序列中使用了bash-ism。