-
动机:在整理 HTML 页面时,我希望快速核对页面里的元信息( 标签),但常规的 grep/sed 很难处理多行或复杂属性。最终我写了一个 Perl 驱动的 Shell 脚本 src/sh/print_meta.sh,保证解析可靠且依赖少。
-
脚本核心:读取目标 HTML,逐个匹配 ,再把每个标签的所有属性和值拼成可读输出,最后统计数量。
-
使用方法:
-
赋权:chmod +x src/sh/print_meta.sh
-
运行:./src/sh/print_meta.sh /path/to/page.html
#!/bin/sh# 打印指定 HTML 文件中的所有 meta 标签属性set -euo pipefailif [ # -ne 1 ]; then echo "用法: 0 /path/to/file.html" >&2 exit 1fiFILE="FILE" ]; then echo "文件不存在: FILE" >&2 exit 1fiperl -0777 -ne ' use strict; use warnings; my content = index = 0; while (content =~ /<meta\b([^>]*)>/gi) { my attrs = attrs =~ /([a-zA-Z0-9:_-]+)\s*=\s*(?:"([^"])"|'''([^'''])'''|([^\s"'''=<>`]+))/g) { my 2 ? 3 ? 4; push @pairs, "value"; } if (@pairs) { print "meta[index]: ", join(", ", @pairs), "\n"; } else { print "meta[index]: (无属性)\n"; } index++; } print "共找到 index 个 meta 标签\n";' "$FILE"