You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

26 lines
740 B

#!/usr/bin/env bash
addressbook="$HOME/.abook/addressbook"
filter(){
if [ -n "$1" ]; then
local str="$(echo "$1" | tr -d ' ' | sed 's/^0/+44/')"
grep -i "$str"
else
cat -
fi
}
cat "$addressbook" |
grep -E '(\[[0-9]+\]|^$|name|phone|mobile)' |
awk -v RS="\n\n" -v ORS="\n" '{gsub("\n","\t",$0); print $0}' |
grep -E "(phone|mobile)" | while read -r line; do
name="$(echo "$line" | cut -d ' ' -f 2 | cut -d '=' -f 2)"
echo "$line" | tr '\t' '\n' |
grep -E '(phone|mobile)' | while read -r numLine; do
num="$(echo "$numLine" | cut -d '=' -f 2 | tr -d ' ' |
sed 's/+44(0)/+44/' | sed 's/^0/+44/')"
numType="$(echo "$numLine" | cut -d '=' -f 1)"
echo -e "$name\t$num\t$numType"
done
done | filter "$*"