首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash将目录中的所有文件合并为一个文件

问使用bash将目录中的所有文件合并为一个文件
EN

Stack Overflow用户
提问于 2011-01-28 10:59:26
回答 2查看 30.3K关注 0票数 21

我有一个包含几个*.js文件的目录。数量和文件名未知。就像这样:

代码语言:javascript
复制
js/
 |- 1.js
 |- 2.js
 |- blabla.js

我需要将这个目录中的所有文件合并到一个merged_dmYHis.js中。例如,如果文件内容是:

1.js

代码语言:javascript
复制
aaa
bbb

2.js

代码语言:javascript
复制
ccc
ddd
eee

blabla.js

代码语言:javascript
复制
fff

merged_280120111257.js将包含:

代码语言:javascript
复制
aaa
bbb
ccc
ddd
eee
fff

是否有一种使用bash的方法,或者这样的任务需要更高级别的编程语言,比如python或类似的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-28 11:00:45

代码语言:javascript
复制
cat 1.js 2.js blabla.js > merged_280120111257.js

一般的解决办法是:

代码语言:javascript
复制
cat *.js > merged_`date +%d%m%Y%H%M`.js

只是出于兴趣-你认为用DDMMYYYYHHMM命名这些文件是个好主意吗?按时间顺序(在shell中)对文件进行排序可能很困难。YYYYMMDDHHMM模式怎么样?

代码语言:javascript
复制
cat *.js > merged_`date +%Y%m%d%H%M`.js
票数 68
EN

Stack Overflow用户

发布于 2015-10-13 09:32:08

您也可以对传入的文件进行排序,默认的顺序是字母顺序,但通过文件修改时间戳,这个示例从最老到最新:

代码语言:javascript
复制
cat `ls -tr *.js` > merged_`date +%Y%m%d%H%M`.js

在本例中,cat从ls命令中获取文件列表,-t按时间戳排序,-r反转默认顺序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4827453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档