我是 shell 脚本新手。我真正想做的是:有一个 YAML 文件,该文件中有不同的变量,我需要将特定的变量名称与另一个位置存在的目录名称相匹配。
示例 YAML:
input_dir: open_dir/
model: '6ZahsvvRead45F'
solution_name: 6ZahsvvRead45Fs44F
有了这个solution_name
变量,我有另一个文件夹两个目录,后面有一个与变量同名的文件夹6ZahsvvRead45Fs44F
。我如何6ZahsvvRead45Fs44F
在 YAML 中查找此内容并将其与两个目录后面的文件夹名称相匹配?我应该使用grep
,awk
还是其他东西?
答案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"