合并文件并在每个文件之间添加一个新行

Ask*_*ken 1 find files

我正在使用

find . -type f \( -name "*.js" ! -name "*-min*" \) -exec cat {} \; > all.js
Run Code Online (Sandbox Code Playgroud)

将文件合并在一起。不幸的是,我没有在每个文件后换行,但它结束了,新文件在同一行开始。

如何在每个文件之间添加换行符?

Gil*_*il' 5

如果你想在每个文件后系统地添加一个换行符:

find . -type f \( -name "*.js" ! -name "*-min*" \) \
     -exec cat {} \; -exec echo \; > all.js
Run Code Online (Sandbox Code Playgroud)

或者

find . -type f \( -name "*.js" ! -name "*-min*" \) \
     -exec sh -c 'for x; do cat "$x"; echo; done' _ {} + >all.js
Run Code Online (Sandbox Code Playgroud)

如果要在每个不以换行符结尾的文件末尾添加换行符:

find . -type f \( -name "*.js" ! -name "*-min*" \) \
     -exec awk '1' {} + > all.js
Run Code Online (Sandbox Code Playgroud)