# This program is under GPL v. 3 or later, see <http://www.gnu.org/licenses/>
teeu() {
- local help="Usage: appendu [-h|--help] FILE
+ local help="Usage: appendu [-h|--help] FILE [LINE]
-Tee unique. Append each stdin line if it does not exist in the file.
+Tee unique. Append each LINE or if none, each stdin line to FILE if it does not exist in FILE.
[-h|--help] display this message"
return
fi
- if [[ ${#@} == 0 ]]; then
- echo "error: need 1 or more arguments"
+ if (( ${#@} == 0 )) ; then
+ echo "teeu error: need 1 or more arguments"
echo "$help"
return 1
fi
+ local file="$1"; shift
local MAPFILE
mapfile -t
- for line in "${MAPFILE[@]}"; do
+ for line in "${@:-$MAPFILE[@]}"; do
grep -xFq "$line" "$1" &>/dev/null || tee -a "$1" <<<"$line"
done
return 0
# This program is under GPL v. 3 or later, see <http://www.gnu.org/licenses/>
teeu() {
- local help="Usage: appendu [-h|--help] FILE
+ local help="Usage: appendu [-h|--help] FILE [LINE]
-Tee unique. Append each stdin line if it does not exist in the file.
+Tee unique. Append each LINE or if none, each stdin line to FILE if it does not exist in FILE.
[-h|--help] display this message"
return
fi
- if [[ ${#@} == 0 ]]; then
- echo "error: need 1 or more arguments"
+ if (( ${#@} == 0 )) ; then
+ echo "teeu error: need 1 or more arguments"
echo "$help"
return 1
fi
+ local file="$1"; shift
local MAPFILE
mapfile -t
- for line in "${MAPFILE[@]}"; do
+ for line in "${@:-$MAPFILE[@]}"; do
grep -xFq "$line" "$1" &>/dev/null || tee -a "$1" <<<"$line"
done
return 0