Browse Source

Refactor, strip query/fragment

master
JustAnotherArchivist 3 years ago
parent
commit
4eff3c3eb3
1 changed files with 6 additions and 8 deletions
  1. +6
    -8
      parent-urls

+ 6
- 8
parent-urls View File

@@ -6,16 +6,14 @@ then
echo "If --with-original is given, the input URL is printed before the parents." >&2
fi

prog0='BEGIN { FS="/"; OFS="/" }' # Set the field separators
prog1='{ print }' # Print the input URL (if desired)
prog2='/\/$/ { --NF }' # Remove the trailing blank field if the URL ends with a slash
prog3='{ for (i = NF; i > 3; --i) { --NF; print $0 OFS; } }' # One by one, remove the last path component, print remaining fields

prog="${prog0} "
prog=''
prog+='BEGIN { FS="/"; OFS="/" }' # Set the field separators
if [[ "$1" == '--with-original' ]]
then
prog="${prog}${prog1} "
prog+='{ print }' # Print the input URL (if desired)
fi
prog="${prog}${prog2} ${prog3}"
prog+='/[?#]/ { sub(/[?#].*/, "") }' # Remove query and fragment if present
prog+='/\/$/ { --NF }' # Remove the trailing blank field if the URL ends with a slash
prog+='{ for (i = NF; i > 3; --i) { --NF; print $0 OFS; } }' # One by one, remove the last path component, print remaining fields

exec awk "${prog}"

Loading…
Cancel
Save