如何解决在Linux中,如果我有一堆文本文件,是否有一个简单的脚本将它们合并为一个文件?
| 例如,假设我有1.csv,2.csv,...,20.csv。有没有简单的Shell脚本,可以将所有内容合并到merged.csv中?解决方法
使用cat串联它们。
cat *.csv > merged.csv
正如@sarnold指出的那样,这将使它们混乱地连接在一起。如果那很重要,请使用他的for循环建议或以下xargs管道:
ls *.csv | sort -n | xargs cat > merged.csv
,如果要通过将一行中的行追加到另一行的末尾来合并文件,那么您正在寻找paste
。
例如,如果file1包含:
1,One
2,Two
和file2包含:
A,B,C
D,E,F
您可以运行paste -d,file1 file2
获得此信息:
1,One,A,C
2,Two,D,F
,简单的答案:
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
,cat {1..20}.csv > merged.csv
这就是猫的用意!请注意,我在{1..20}
序列中使用了bash-ism。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。