如何移除Markdown文件中YAML的空属性?
使用mikefarah/yq移除Markdown YAML中的空属性
单个文件处理命令
yq -i 'del(.. | select((type == "seq" or type == "map") and length == 0))' Hello.md
递归处理目录下所有Markdown文件(Linux/macOS)
find /目标目录路径 -name "*.md" -exec yq -i 'del(.. | select((type == "seq" or type == "map") and length == 0))' {} \;
命令说明
del(.. | select(...)):递归遍历YAML结构,精准删除符合条件的节点type == "seq" or type == "map":匹配空数组(seq)、空映射(map)类型的属性length == 0:筛选出长度为0的空节点,确保只删除无内容的属性行-i:直接修改原文件,不会破坏Markdown的YAML分隔符---
扩展处理:包含空字符串属性
如果需要同时清理类似title: 这种空字符串属性,可使用以下命令:
yq -i 'del(.. | select((type == "seq" or type == "map") and length == 0) or (type == "str" and . == ""))' Hello.md
内容的提问来源于stack exchange,提问作者Kamil
相关产品推荐
相关产品推荐

