#!/bin/bash usage() { cat < and released under the WTFPL. EOF exit $1 } set -e SELF="$( basename $0 )" CMD="xsel -o" [ "$1" = "--help" ] && usage 0 [ "$1" = "-n" ] && CMD=":" && shift [ "$1" != "" ] && usage 1 TMPFILE="$( mktemp -t $SELF.XXXXXX )" trap "rm -f \"$TMPFILE\"" EXIT $CMD > "$TMPFILE" ${VISUAL:-${EDITOR:-vi}} "$TMPFILE" # remove the newline(s) from the end of the file perl -i -0777 -pe 's/\n*$//' "$TMPFILE" [ -s "$TMPFILE" ] && xsel -i < "$TMPFILE"