Actualización: He actualizado la secuencia de comandos según los comentarios de @ user3439894. La secuencia de comandos ahora debería funcionar para la mayoría de los usuarios, independientemente del sabor que tengan los datos sin formato de su libreta de direcciones.
Es posible que desee ver una solución de línea de comandos temporal. Le da un comando contact <search_term>
que puede ejecutar en Terminal.app para buscar contactos.
Supongo que su MBP de Yosemite es solo una solución temporal mientras su Sierra MBP está en el taller de reparaciones. Si bien el comando Terminal tiene una funcionalidad limitada, puede funcionar lo suficientemente bien como para que pueda ser útil mientras espera a que su Sierra MacBook Pro regrese.
La configuración del comando temporal no debe requerir más de 10 a 15 minutos.
Configurar el comando contact
-
Abra la copia de seguridad de Time Machine que contiene los datos de su libreta de direcciones (basada en Sierra).
-
En tu copia de seguridad, busca la carpeta "${HOME}/Library/Application Support/AddressBook"
, que es la carpeta raíz de todos tus datos de contacto.
-
Restaure toda la carpeta AddressBook
en una ubicación temporal, e. g .: ${HOME}/SierraAddressBook
.
-
Verifique que todo el árbol ${HOME}/SierraAddressBook
tenga los permisos correctos para que pueda leerlo sin una contraseña de administrador.
-
Para una buena medida, haga una copia de seguridad de su archivo ${HOME}/.bash_profile
.
-
Abra el archivo ${HOME}/.bash_profile
en un editor de texto de su elección.
-
Agregue temporalmente a .bash_profile
las siguientes líneas:
(Tenga en cuenta que para algunas de estas líneas, la sangría es importante; intente no cambiar la sangría en ninguna de esas líneas, aunque parezca un poco desactivada).
contact() {
# We assume "${HOME}/Library/Application Support/AddressBook"
# has been restored to this directory from a TM backup.
local contacts_base_dir="${HOME}/SierraAddressBook"
local search_term="$1"
local sql_code="$(cat << EOF
.mode column
SELECT
TRIM( IFNULL(R.ZFIRSTNAME, '')
|| ' ' || IFNULL(R.ZLASTNAME, '')
|| ' ' || IFNULL(R.ZORGANIZATION, '')) NAME,
'created ' || date('2001-01-01', ZCREATIONDATE
|| ' seconds', 'localtime') CREATED,
'modified ' || date('2001-01-01', ZMODIFICATIONDATE
|| ' seconds', 'localtime') MODIFIED,
GROUP_CONCAT(DISTINCT TRIM(IFNULL(E.ZLABEL, ''),
'! _$<>') || ' ' || IFNULL(E.ZADDRESSNORMALIZED, ''))
EMAIL,
GROUP_CONCAT(DISTINCT TRIM(IFNULL(P.ZLABEL, ''),
'! _$<>') || ' ' || IFNULL(P.ZFULLNUMBER, ''))
PHONE
FROM
ZABCDRECORD R
LEFT JOIN
ZABCDEMAILADDRESS E ON E.ZOWNER = R.Z_PK,
ZABCDPHONENUMBER P ON P.ZOWNER = R.Z_PK
WHERE
NAME LIKE '%${search_term}%'
GROUP BY
R.Z_PK
ORDER BY
NAME;
EOF
)"
export sql_code
find "${contacts_base_dir}" -regex '.*/AddressBook-[^/]*\.abcddb$' \
-exec bash -c "/usr/bin/sqlite3 '{}' <<< \"\${sql_code}\"" \;
}
export -f contact
-
Guarda tus cambios en .bash_profile
.
-
Abre Terminal.app.
-
Abre una nueva ventana de terminal.
Uso
Ejecute el comando contact
seguido de su término de búsqueda en la Terminal. Por ejemplo:
$ contact "Bella Napoli"
Bella Napoli created 2013-10-12 modified 2015-05-29 Home +49 931 51706
$ contact IKEA
IKEA Frankfurt created 2013-10-12 modified 2013-10-12 Work 0180 5 353435
$ contact Neptun
Hotel Neptun created 2013-10-12 modified 2013-10-12 Work [email protected]
Work +49 381 777-0,WorkFAX +49 381 54023
$ contact
<lists all your contacts>
Advertencias
- El término de búsqueda solo se aplica al nombre, apellido y nombre de la organización.
- El término de búsqueda distingue entre mayúsculas y minúsculas.
- El término de búsqueda no puede contener espacios o cierta puntuación, a menos que esté incluido entre las comillas simples o dobles correctas.
- Para buscar por nombre completo, use el orden correcto:
<first_name> <last_name> <organization_name>
- Los términos de búsqueda también pueden ser subcadenas de nombres.
- No endoso a ninguna de las compañías y sus productos y servicios que proporcioné en el ejemplo. Los usé porque no puedo revelar datos personales por razones obvias. Además, era demasiado perezoso para agregar datos falsos a mi propia libreta de direcciones.
- He probado el script solo en El Capitán, pero debería funcionar en Yosemite, incluso cuando se combina con los datos de la libreta de direcciones basados en Sierra.
- Si tiene problemas, no dude en dejar un comentario a continuación.