Files
lenz-web/scripts/list.sh
2025-05-20 16:55:01 +02:00

23 lines
445 B
Bash
Executable File

#!/usr/bin/env bash
# Usage: ./list_tags_and_attrs.sh file.xml
if [[ -z "$1" ]]; then
echo "Usage: $0 file.xml" >&2
exit 1
fi
FILE="$1"
# 1. list all unique tags
tags=($(xmlstarlet el -v "$FILE" | awk -F/ '{print $NF}' | sort -u))
for tag in "${tags[@]}"; do
echo "$tag"
# 2. for each tag, list all attribute values
xmlstarlet sel -t \
-m "//$tag/@*" \
-v '.' -n "$FILE" \
| sort -u \
# 3. deduplicate via sort -u
done