X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=cards%2Flist.sh;h=33ca99110ebdb4cf37ee81e9d42f00b816f3d146;hb=c921534e9e36d19a10b23c148e915c90e1b05edb;hp=80abde80df442143c1278ba12acd07a7ab19bc1f;hpb=15b5d8e1b341b11588f23c66e7ebb27c13f6eaeb;p=lobster diff --git a/cards/list.sh b/cards/list.sh index 80abde8..33ca991 100755 --- a/cards/list.sh +++ b/cards/list.sh @@ -97,23 +97,23 @@ filter_cards(){ while [ "$filter" ]; do f="${filter%%^*}" filter="${filter#*^}" + debug "Filter: $f" case $f in '') break ;; ANY:*) fex="/\n.*(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" ;; - NAME:*) fex="/\n(N|FN|NICKNAME)(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + NAME:*) fex="/\n(N|FN|NICKNAME)(\;[^:]*)?:[^\n]*(${f#*:}).*\r?\n/{${fex}}" ;; - STREET:*|ZIP:*) fex="/\nADR(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + STREET:*|ZIP:*) fex="/\nADR(\;[^:]*)?:[^\n]*(${f#*:}).*\r?\n/{${fex}}" ;; - *) fex="/\n${f%%:*}(\;[^:]*)?:.*(${f#*:}).*\r?\n/{${fex}}" + *) fex="/\n${f%%:*}(\;[^:]*)?:[^\n]*(${f#*:}).*\r?\n/{${fex}}" ;; esac done for cardfile in "${_DATA}"/vcard/*.vcf; do - printf '%s\n' "$cardfile" - cat "$cardfile" + printf '%s\n' "$cardfile" "$(grep -vxE " *${CR}?" "$cardfile")" done \ | sed -En ':X; /\nEND;?:VCARD\r?$/!{ N; bX; }; h; s;\n.*$;;; x; s;^[^\n]+\n;;; '"$upcase""$fex"