【发布时间】:2020-10-04 15:02:26
【问题描述】:
我想为第一级中的所有倒数第二个组件批量更新我的 YAML 文件。像这样的:
Zero-level:
First-level-1:
- Key1: AAA
- Key2: BBB
First-level-2: <<< I want to change the name of all second last components
First-level-3:
我过去使用sed通过识别关键字来批量更新文件夹内所有文件中的特定关键字,如下所示:
sed -i 's/XXX: XXX/XXX: YYY/g' *
但是对于这种情况,我想识别第一级数组的每一秒的最后一项。其中的值可能不同。此外,不同的文件可能具有不同数量的第一级项目。文件A可能是这样的:
Zero-level:
First-level-1:
- Key1: AAA
- Key2: BBB
First-level-2: <<< I want to change the name of all second last components
First-level-3:
文件B可能是这样的:
Zero-level:
First-level-1:
- Key1: AAA
First-level-2:
- Key1: BBB
First-level-4:
First-level-5:
First-level-6:
First-level-7: <<< I want to change the name of all second last components
First-level-8:
'First-level-2' 的文件 A 名称和文件 B 的 'First-level-7' 都应更改为我想要的新名称。
有什么方法可以探索吗?
谢谢
【问题讨论】:
-
不要使用
sed来解析YAML!你能下载像yq这样的外部工具吗?