You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用控制台命令提取文件夹中.yaml文件的文件名与url参数生成表格?

快速提取YAML文件参数并生成Markdown表格的控制台命令

当然有简便的方法!推荐用**yq**(一款专门处理YAML的轻量工具)配合Shell循环,既能保证解析YAML的准确性,又能快速生成你要的表格。下面是具体步骤:

1. 先安装yq(如果还没装)

不同系统的安装方式:

  • Ubuntu/Debian:sudo apt install yq
  • macOS(用Homebrew):brew install yq
  • 其他系统:可以直接从官方仓库下载预编译的二进制文件

2. 执行生成表格的命令

直接在存放YAML文件的文件夹里运行这段命令:

# 输出Markdown表格表头
echo "| 文件名 | File Name 参数 | URL 参数 |"
echo "|--------|----------------|----------|"
# 遍历所有.yaml文件
for file in *.yaml; do
  # 提取file_name参数的值
  file_name_val=$(yq '.args[] | select(.arg == "file_name").value' "$file")
  # 提取url参数的值
  url_val=$(yq '.args[] | select(.arg == "url").value' "$file")
  # 输出表格行
  echo "| $file | $file_name_val | $url_val |"
done

3. 命令效果说明

运行后会直接在控制台输出标准的Markdown表格,示例效果如下:

文件名File Name 参数URL 参数
test1.yamltestfilefakesite.com
demo.yamlmydataexample.org

备选方案:不用yq,用awk(适合临时场景)

如果不想额外安装工具,也可以用awk处理,但要注意这个方法依赖你的YAML格式严格和示例一致(比如arg: file_name和对应的value行紧挨着):

echo "| 文件名 | File Name 参数 | URL 参数 |"
echo "|--------|----------------|----------|"
for file in *.yaml; do
  file_name_val=$(awk -F'"' '/arg: file_name/{getline; print $2}' "$file")
  url_val=$(awk -F'"' '/arg: url/{getline; print $2}' "$file")
  echo "| $file | $file_name_val | $url_val |"
done

⚠️ 提示:如果YAML文件格式有变动(比如缩进不同、参数行不相邻),这个awk命令可能失效,所以优先推荐yq方案。

内容的提问来源于stack exchange,提问作者Teddy

火山引擎 最新活动