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

使用bash将目录中的所有文件合并到一个目录中,bash,Bash,我有一个包含几个*.js文件的目录。数量和文件名未知。大概是这样的: js/ |- 1.js |- 2.js |- blabla.js 我需要将此目录中的所有文件合并为一个merged\u dmYHis.js。例如,如果文件内容为: 1.js aaa bbb ccc ddd eee fff 2.js aaa bbb ccc ddd eee fff blabla.js aaa bbb ccc ddd eee fff 合并的_280120111257.js将包含: aaa

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

js/
 |- 1.js
 |- 2.js
 |- blabla.js
我需要将此目录中的所有文件合并为一个
merged\u dmYHis.js
。例如,如果文件内容为:

1.js

aaa
bbb
ccc
ddd
eee
fff
2.js

aaa
bbb
ccc
ddd
eee
fff
blabla.js

aaa
bbb
ccc
ddd
eee
fff
合并的_280120111257.js
将包含:

aaa
bbb
ccc
ddd
eee
fff
有没有一种方法可以使用bash来完成,或者这样的任务需要更高级的编程语言,比如python或类似的语言

cat 1.js 2.js blabla.js > merged_280120111257.js
一般解决办法是:

cat *.js > merged_`date +%d%m%Y%H%M`.js
只是出于兴趣-你认为用ddmmyyyyhmm命名文件是个好主意吗?可能很难按时间顺序(在shell中)对文件进行排序。YYYYMMDDHHMM模式如何

cat *.js > merged_`date +%Y%m%d%H%M`.js

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

cat `ls -tr *.js` > merged_`date +%Y%m%d%H%M`.js

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

非常感谢,我不认为答案这么简单。合并文件的顺序是什么?@SilverLight-与您给定的顺序相同。由于
*.js
(在
ls*.js
中)按字母顺序返回它们,因此它们将与
cat*.js
连接。