notes/internal_link_checker.sh

17 lines
434 B
Bash
Executable File

#!/usr/bin/env bash
# used to alert me if i've written a bad internal link or broken one by changing a header
files="$(find $1 -name '*.html' -type f)"
for filename in $files
do
links="$(grep -oP '<a.*?>' -h $filename | grep -oP '(?<=href="\#).*?(?=")')"
ids="$(grep -oP '(?<=id=").*?(?=")' -h $filename)"
for link in $links
do
[[ "$ids" == *"$link"* ]] \
|| echo Found broken internal link in $filename: $link
done
done