例如假设我有1.csv,2.csv,...,20.csv。是否有一个简单的shell脚本,我可以将所有内容合并到merged.csv?
答案 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。