首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash:将文件的内容附加到每个文件中注释最后一行的新文件中

问Bash:将文件的内容附加到每个文件中注释最后一行的新文件中
EN

Unix & Linux用户
提问于 2019-02-06 17:55:42
回答 1查看 581关注 0票数 0

我有以下文件,所有这些文件都包含缩小的JavaScipt代码。每个文件以注释结尾:

文件夹结构

代码语言:javascript
复制
|--static
  |--js
    |--1.1001bbaf.chunk.js
    |--runtime~main.229c360f.js
    |--main.57f2973b.chunk.js

1.1001bbaf.chunk.js

代码语言:javascript
复制
(window.webpackJsonp=window.webpackJsonp||[]).push .....
//# sourceMappingURL=1.1001bbaf.chunk.js.map

runtime~main.229c360f.js

代码语言:javascript
复制
!function(e){function r(r){for .....
//# sourceMappingURL=runtime~main.229c360f.js.map

main.57f2973b.chunk.js

代码语言:javascript
复制
(window.webpackJsonp=window.webpackJsonp||[]).push .....
//# sourceMappingURL=main.57f2973b.chunk.js.map

我的要求是在一个文件main.js中刷新所有文件的内容,这样内容就会被追加,而不会被覆盖。

我尝试了以下解决方案:

  1. cat static/js/*.js >> main.js运行良好,但它在第一个文件末尾附加第二个文件的内容,以注释结尾。就像这样:

//#sourceMappingURL=1.1001bbaf.chunk.js.map(window.webpackJsonp=window.webpackJsonp||[]).push .....

现在,整个行是vim文本编辑器中的注释,从这一行开始的所有内容都是Atom文本编辑器中的注释。

Vim文本编辑器的默认行为是,如果在命令模式下按o,如果最后一行是注释//...,则新行以//开头。

我不知道如何处理以注释行结尾的文件。我可以这样想:追加下一个文件的内容,从新行开始,或者删除最后一行注释。

限制是只使用bash。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-02-06 18:31:24

文件的最后一行似乎没有以换行符结尾。这就是为什么一个文件的最后一行与下一个文件的第一行相结合的原因。

您可以尝试在每个文件后面添加一个换行符

代码语言:javascript
复制
for file in static/js/*.js
do
    cat "$file"
    echo
done >> main.js

脚本不检查文件是否以换行符结尾。如果一个文件以换行符结尾,它将后面跟着一个空行。

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

https://unix.stackexchange.com/questions/499119

复制
相关文章

相似问题

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