diff --git a/examples/data/scripts/load_url_from_history.sh b/examples/data/scripts/load_url_from_history.sh index 3c9af67e7..ce533c92e 100755 --- a/examples/data/scripts/load_url_from_history.sh +++ b/examples/data/scripts/load_url_from_history.sh @@ -12,8 +12,12 @@ readonly DMENU_OPTIONS="xmms vertical resize" # choose from all entries, sorted and uniqued if $DMENU_HAS_VERTICAL; then # choose an item in reverse order, showing also the date and page titles - # pick the last field from the first 3 fields. this way you can pick a url (prefixed with date & time) or type just a new url. - goto="$( tac "$UZBL_HISTORY_FILE" | $DMENU | cut -d ' ' -f -3 | awk '{ print $NF }' )" + + # tac: output history in reverse, awk: remove duplicate URLs, $DMENU: present to dmenu, + # cut: get the first three fields, awk: pick the last field + # As opposed to just getting the third field directly, the combination of cut+awk allows + # to enter a completely new URL (which would be field number 1 or $NF, but not 3). + goto="$( tac "$UZBL_HISTORY_FILE" | awk '!a[$3]++' | $DMENU | cut -d ' ' -f -3 | awk '{ print $NF }' )" else readonly current="$( tail -n 1 "$UZBL_HISTORY_FILE" | cut -d ' ' -f 3 )" goto="$( ( print "$current\n"; cut -d ' ' -f 3 < "$UZBL_HISTORY_FILE" | grep -v -e "^$current\$" | sort -u ) | $DMENU )"