如何匹配 YAML 文件中的文件名和变量?

如何匹配 YAML 文件中的文件名和变量?

我是 shell 脚本新手。我真正想做的是:有一个 YAML 文件,该文件中有不同的变量,我需要将特定的变量名称与另一个位置存在的目录名称相匹配。

示例 YAML:

input_dir: open_dir/
model: '6ZahsvvRead45F'
solution_name: 6ZahsvvRead45Fs44F

有了这个solution_name变量,我有另一个文件夹两个目录,后面有一个与变量同名的文件夹6ZahsvvRead45Fs44F。我如何6ZahsvvRead45Fs44F在 YAML 中查找此内容并将其与两个目录后面的文件夹名称相匹配?我应该使用grepawk还是其他东西?

答案1

我应该使用 grep、awk 还是其他东西?

其他 - yaml 感知工具,例如yq

#!/usr/bin/env bash

if ! solution_name="$(yq -er .solution_name file.yaml)"
then
    printf "Failed to extract solution_name\n" >&2
    exit 1
fi

find ../.. -type d -name "$solution_name"

相关内容