yaml 如下
name1:
- herry
- jack
name2:
- jack
- herry
name3:
- jack
- herry
需求:
1
br_wang 2021 年 11 月 23 日
不如试下正则替换?
1. herry -> herry2 2. jack -> herry 3. herry2 -> jack |
2
asilin 2021 年 11 月 23 日
“1”的解决方案:sed -i '/name2:/{n; N; s/\([^\n]\+\)\n\(.*\)/\2\n\1/}' <文件名>
|
5
lanlanye 2021 年 11 月 23 日
文件不是特别多或者特别大的话,用 vim 录宏……
|
6
moshiyeap100 2021 年 11 月 23 日
把 yml 读进来,然后代码里排序,重新生成。
|
7
quanjw 2021 年 11 月 23 日
dd p
|
8
arischow 2021 年 11 月 23 日 via iPhone
你所熟悉的语言的 yaml 库
|
9
XSG 2021 年 11 月 23 日
可以尝试一个开源小工具 yq
|
10
yEhwG10ZJa83067x 2021 年 11 月 24 日
@quanjw 详细说说。没看懂
|
12
zliea 2021 年 11 月 24 日
我觉得应该考虑一下 py ,py 做这种应该比较适合。
|
13
kidonng 2021 年 11 月 24 日 via Android
取决于这个任务的容错率多高。
如果目标数据就像你发的那么简单,sed 之类就行。 如果稍微复杂点的,还是用专门的 YAML 操作工具,TomWright/dasel 或者 9L 提到的 mikefarah/yq 都可以。 |