2 votos

Cómo combinar unzip y cat para que funcionen como uno solo en la terminal

Trabajo para un alojamiento web como técnico de primer nivel y a menudo tenemos que instalar un SSL para un cliente. Estoy en un Mac ahora, pero estoy familiarizado con Linux también.

Lo que busco es tomar el archivo comprimido, descargarlo a mi mac y luego ejecutar el comando tanto para descomprimirlo como para cat de una sola vez. Así se elimina el tedioso proceso de descomprimir archivo.zip y luego copiar cada archivo, uno a la vez para ejecutar cat.

Soy cojo a la hora de escribir un script y he jugado con múltiples comandos, ninguno que haya funcionado.

2voto

rubynorails Puntos 466

Así que he hecho algunas pruebas, y parece que gzcat (y evento zcat ) en OS X sólo funcionan para los archivos comprimidos con gzip, y no para los archivos que utilizan la compresión zip estándar. Dicho esto, creo que esto es lo que estás buscando:

"sub.dominio.tld.ssl.zip" contiene 2 archivos:

  • "sub.dominio.tld.crt" (certificado SSL)
  • "sub.dominio.tld.key" (clave privada RSA)

Para imprimir todos los archivos a STDOUT , se utilizaría unzip -p

Para " cat " el certificado, puede utilizar el siguiente comando:

unzip -p sub.domain.tld.ssl.zip | sed -n '/CERT/,/CERT/p'

Para " cat " la clave privada, puede utilizar el siguiente comando:

unzip -p sub.domain.tld.ssl.zip | sed -n '/KEY/,/KEY/p'

Después, de que usted podría hacer lo que usted desea, como crear un poco script o función:

#!/bin/bash
unzip -p "$1" | sed -n '/CERT/,/CERT/p' > "/etc/ssl/Certs/${2}.crt"
unzip -p "$1" | sed -n '/KEY/,/KEY/p' > "/etc/ssl/Private/${2}.key"

El anterior script tomaría 2 argumentos (que idealmente deberían ir entre comillas):

  1. Nombre del archivo zip
  2. Convención de nomenclatura de los archivos cert/key

Si el nombre del guión era sslinstazip.sh Lo harías así:

./sslinstazip.sh "sub.domain.tld.ssl.zip" "sub.domain.tld"

Evidentemente, hay muchas formas de modificar esto para adaptarlo a tus necesidades personales, pero en este caso, unzip es en realidad tu amigo.

0voto

kittyhawk Puntos 141

De hecho, esta noche he encontrado una forma de hacerlo con la ayuda de un amigo del trabajo.

#!/bin/bash
#Script to run unzip and cat in one command

zipinfo -1 $1 > $1.txt;
unzip $1;
for i in $(cat $1.txt); do echo "File : $i >>" && cat $i; done

Lo guardé en TextWrangler como uzipcat.sh y ejecuté chmod u+x

Para ejecutarlo escribo ./uzipcat.sh sslfilename.zip y lo extrae además de imprimir el contenido.

Gracias por el interés y las sugerencias.

-2voto

Oskar Puntos 1242

Omita la descompresión y utilice gzcat directamente. No estoy seguro de lo que implica "instalar un SSL", pero si haces una pregunta de seguimiento con ese detalle, enlázala en un comentario aquí y le echaré un vistazo.

Además, hacer un breve shell script podría ayudarte a recoger los requisitos de tu automatización si Automator no es lo suficientemente potente para tus necesidades.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X