繁体   English   中英

脚本 shell - 将行数据格式化为 yaml 格式

[英]Script shell - format row data into a yaml format

我正在寻找如何使用 shell 脚本来转换类似的东西,例如:

default.aaa.bbb.ccc value1
default.aaa.bbb.ddd value2
default.aaa.xxx.yyy valu3
required.aaa.eee value4

转换为 std yaml 格式,例如:

default:
  aaa:
    bbb:
      ccc: value1
      ddd: value2
    xxx:
      yyy: valu3
required:
  aaa:
    eee: value4

为了缓解这个问题,我们可以假设我们将一个文件作为输入,并且我们期望另一个文件作为输出。

使用yq

#!/bin/bash

INPUT=$1
OUTPUT=$2

touch $OUTPUT
while read LINE; do
    echo "$LINE"
    YAML_PATH=$(echo "$LINE" | awk '{print $1}')
    VALUE=$(echo "$LINE" | awk '{print $2}')
    yq w -i "$OUTPUT" "$YAML_PATH" "$VALUE"
done < $INPUT

-i表示“就地更新 yaml 文件”。

注意:您的输入文件应以换行符结尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM