Me gustaría exportar datos desde el servidor Zimbra, pero se exportan datos en cada línea nueva, mi comando:
zmprov -l gaa -v domain.com | grep -e "zimbraForeignPrincipal: " -e "zimbraTwoFactorAuthEnabled: " -e "^mail: "
pero el resultado se ve así:
correo electrónico:
zimbraForeignPrincipal:
zimbraTwoFactorAuthEnabled
¿Hay alguna forma de tener un correo electrónico con atributos relacionados en una línea?
Respuesta1
Utilice awk:
zmprov -l gaa -v domain.com | \
grep -e "zimbraForeignPrincipal: " -e "zimbraTwoFactorAuthEnabled: " -e "^mail: " |\
awk '{delim=(NR%2?"\n":" ");txt=(NR==1?"":txt delim) $0}END{print txt}'
Hace lo siguiente:
- Establece el delimitador según el número de línea actual: si es impar, entonces el delimitador es una nueva línea, si es par, el delimitador es un espacio (esta es la
delim=(NR%2?"\n":" ")
parte). - Recoge todas las líneas en una variable denominada
txt
. Cada línea se antepone con la variable en sí (es decir, las líneas recopiladas hasta el momento) y el delimitador del punto anterior, a menos que esta sea la primera línea, en cuyo caso, se antepone una cadena vacía (latxt=(NR==1?"":txt delim) $0
parte). - Finalmente,
txt
se imprime la variable.