linux - Bash / ZSH - 如何从特定行复制到文件末尾,然后粘贴到另一个文件的第 1 行,同时保留该文件中的所有文本
问题描述
我正在尝试将 bash 脚本添加到自动编译变更日志的 Azure Devops 管道中。
进行 PR 时,将有一个文件提交调用pr-changelog.md
。我希望从特定行开始复制此文件中的所有文本,例如第 6 行。然后我希望将其粘贴到另一个名为changelog.md
第 1 行的文件中,将该文件中的所有文本向下移动并保留它。这两个文件都将位于我的文件夹的根目录中。
到目前为止,我已经看到了类似和建议的命令cp
,但我不确定如何定位这些特定文件并在最后一步粘贴以始终保留已经存在的内容。sed
awk
我的 bash 脚本应该使用什么来实现这一点?
解决方案
我会使用以下内容:
cat <(tail -n+7 pr-changelog.md) changelog.md > output
mv output changelog.md
tail
返回pr-changelog.md
文件的结尾,在使用时从第 7 行开始-n+7
。
<(...)
是进程替换,将返回命令的输出流,可由cat
.
我们将其连接到当前changelog.md
文件以获取新文件。
小心不要尝试在一个操作中执行它:会在读取之前> changelog.md
覆盖 的内容。changelog.md
cat
推荐阅读
- time-complexity - 在实践和理论中,我们在哪里划清 O(1) 和 O(n) 之间的界限?
- javascript - 在 `@media print` 中使用 CSS `*` 和 `:not()` 仍然可以显示一切。是什么原因?
- java - How to set the Title of a Frame in java via Combobox?
- r - 使用circlepack在ggraph中分面时隐藏根节点
- java - 历史数据,根据后赔率 3 个或更多选项计算平局赔率
- sublimetext3 - Sublime Text 没有可用的包 - 包控制问题 502
- javascript - 尝试使用 firestore 进行多字段搜索
- html - 为什么移动中的子菜单在菜单顶部打开而不是向下推菜单?
- amazon-web-services - 如何在 CloudWatch Logs 代理将日志事件发送到 AWS 之前过滤和转换 EC2 实例中的日志事件
- amazon-web-services - AWS 无服务器 - 将云端 POST 请求修改为 s3 网站来源的 GET 请求