#!/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 '' -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