add link fixing tool
This commit is contained in:
parent
2d8240368d
commit
c7c9b5d848
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
escape() {
|
||||||
|
sed 's/[^^]/[&]/g; s/\^/\\^/g' <<<"$1";
|
||||||
|
}
|
||||||
|
export -f escape
|
||||||
|
escapeReplace() {
|
||||||
|
sed 's/[&/\]/\\&/g' <<<"$1";
|
||||||
|
}
|
||||||
|
export -f escapeReplace
|
||||||
|
searchfile() {
|
||||||
|
LINKS=$(grep -oP '(?<=\]\().+?(?=[\)| ])' "$1")
|
||||||
|
for link in $LINKS; do
|
||||||
|
if echo $link | grep -E '^http' >/dev/null; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if echo $link | grep -E ".md$" && find . -name "$link"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
echo $link
|
||||||
|
FILES=$(find . -iname "*$(basename $link)*")
|
||||||
|
echo "$FILES" | cat --number
|
||||||
|
read PICK
|
||||||
|
FILE=$(basename $(echo "$FILES" | head -n $PICK | tail -n 1) .md)
|
||||||
|
sed -i "s/$(escape '('$link')')/\($(escapeReplace $FILE)\)/" "$1"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
export -f searchfile
|
||||||
|
find . -iname "*.md" -exec bash -c 'searchfile "$0"' {} \;
|
Loading…
Reference in New Issue