#!/bin/bash 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} " if [[ "$1" == '--with-original' ]] then prog="${prog}${prog1} " fi prog="${prog}${prog2} ${prog3}" exec awk "${prog}"