我有以下文件,所有这些文件都包含缩小的JavaScipt代码。每个文件以注释结尾:
|--static
|--js
|--1.1001bbaf.chunk.js
|--runtime~main.229c360f.js
|--main.57f2973b.chunk.js1.1001bbaf.chunk.js
(window.webpackJsonp=window.webpackJsonp||[]).push .....
//# sourceMappingURL=1.1001bbaf.chunk.js.mapruntime~main.229c360f.js
!function(e){function r(r){for .....
//# sourceMappingURL=runtime~main.229c360f.js.mapmain.57f2973b.chunk.js
(window.webpackJsonp=window.webpackJsonp||[]).push .....
//# sourceMappingURL=main.57f2973b.chunk.js.map我的要求是在一个文件main.js中刷新所有文件的内容,这样内容就会被追加,而不会被覆盖。
我尝试了以下解决方案:
cat static/js/*.js >> main.js运行良好,但它在第一个文件末尾附加第二个文件的内容,以注释结尾。就像这样://#sourceMappingURL=1.1001bbaf.chunk.js.map(window.webpackJsonp=window.webpackJsonp||[]).push .....
现在,整个行是vim文本编辑器中的注释,从这一行开始的所有内容都是Atom文本编辑器中的注释。
Vim文本编辑器的默认行为是,如果在命令模式下按o,如果最后一行是注释//...,则新行以//开头。
我不知道如何处理以注释行结尾的文件。我可以这样想:追加下一个文件的内容,从新行开始,或者删除最后一行注释。
限制是只使用bash。


发布于 2019-02-06 18:31:24
文件的最后一行似乎没有以换行符结尾。这就是为什么一个文件的最后一行与下一个文件的第一行相结合的原因。
您可以尝试在每个文件后面添加一个换行符
for file in static/js/*.js
do
cat "$file"
echo
done >> main.js脚本不检查文件是否以换行符结尾。如果一个文件以换行符结尾,它将后面跟着一个空行。
https://unix.stackexchange.com/questions/499119
复制相似问题