Actualización: He actualizado el script según los comentarios de @user3439894. El script ahora debería funcionar para la mayoría de los usuarios, sin importar el formato de los datos brutos de su libreta de direcciones.
Tal vez quieras buscar una solución temporal en la línea de comandos. Te da una contact <search_term>
que puedes ejecutar en Terminal.app para buscar contactos.
Supongo que tu MBP Yosemite es sólo una solución temporal mientras tu MBP Sierra está en el taller. Aunque el comando Terminal tiene una funcionalidad limitada, podría funcionar lo suficientemente bien como para que te sea útil mientras esperas a que vuelva tu MacBook Pro Sierra.
La configuración del comando temporal no debería requerir más de 10-15 minutos.
La configuración de la contact
comando
-
Abra la copia de seguridad de Time Machine que contiene los datos de su libreta de direcciones (basada en Sierra).
-
En su copia de seguridad, busque la carpeta "${HOME}/Library/Application Support/AddressBook"
que es la carpeta root de todos tus datos de contacto.
-
Restaurar toda esa AddressBook
a una ubicación temporal, por ejemplo: ${HOME}/SierraAddressBook
.
-
Compruebe que todo el ${HOME}/SierraAddressBook
tiene los permisos correctos para que puedas leerlo sin una contraseña de administrador.
-
Por si acaso, haz una copia de seguridad de tu ${HOME}/.bash_profile
archivo.
-
Abrir el archivo ${HOME}/.bash_profile
en un editor de texto de su elección.
-
Añadir 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 fuera de lugar).
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
-
Guarde los cambios en .bash_profile
.
-
Abre Terminal.app.
-
Abra una nueva ventana de terminal.
Uso
Ejecute el comando contact
seguido de su término de búsqueda en el 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 concierge@hotel-neptun.de
Work +49 381 777-0,WorkFAX +49 381 54023
$ contact
<lists all your contacts>
Advertencias
- El término de búsqueda sólo se aplica al nombre, al apellido y al 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 ni ciertos signos de puntuación, a menos que vaya entre las comillas simples o dobles adecuadas.
- Para buscar por nombre completo, utilice el orden correcto:
<first_name> <last_name> <organization_name>
- Los términos de búsqueda también pueden ser subcadenas de nombres.
- No avalo ninguna de las empresas y sus productos y servicios que he puesto en el ejemplo. Los he utilizado porque no puedo revelar datos personales por razones obvias. Además, me daba pereza añadir datos falsos a mi propia agenda.
- He probado el script sólo en El Capitán pero debería funcionar en Yosemite, incluso cuando se combina con datos de la libreta de direcciones basados en Sierra.
- Si te encuentras con problemas, no dudes en dejar un comentario a continuación.
0 votos
Por favor, enlace al menos algunas soluciones que no funcionan para evitar respuestas basadas en ellas.