X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=teeu;h=fbeecadb12d360bb0da0789c2bacc2ecf09baa8e;hb=e66bf1e59019299a6ac6fc7b0c2798d8086c0ced;hp=9ff55ceba8efd696e1c20b3ca5b99be8afd1a35d;hpb=a468c8cdb5a12fce2487ae9816cdb4501ffffa09;p=tee-unique diff --git a/teeu b/teeu index 9ff55ce..fbeecad 100755 --- a/teeu +++ b/teeu @@ -1,19 +1,32 @@ #!/bin/bash -# Copyright (C) 2014 Ian Kelling -# This program is under GPL v. 3 or later, see +# Copyright (C) 2016 Ian Kelling + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. teeu() { - local help="Usage: appendu [-h|--help] FILE [LINE] + local help="Usage: teeu [-h|--help] FILE [LINE] +Append LINE if it's not already in FILE -Tee unique. Append each LINE or if none, each stdin line to FILE if it does not exist in FILE. +If no LINE is specified, process each line from STDIN. +teeu is short for tee unique. + +-h|--help display this message" - [-h|--help] display this message" - if [[ $1 == --help || $1 == -h ]]; then echo "$help" return fi - + if (( ${#@} == 0 )) ; then echo "teeu error: need 1 or more arguments" echo "$help" @@ -21,7 +34,7 @@ Tee unique. Append each LINE or if none, each stdin line to FILE if it does not fi local MAPFILE (( ${#@} >= 2 )) && MAPFILE="${@:2}" || 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