Come combinare decomprimere e cat per lavorare come uno nel terminale

1

Lavoro per un webhost come tecnico di primo livello e spesso abbiamo bisogno di installare un SSL per un cliente. Ora sono su un Mac ma conosco anche Linux.

Quello che sto cercando di fare sarebbe prendere il file zippato, scaricarlo sul mio mac e quindi eseguire il comando sia per decomprimerlo che per cat in un pop. Eliminando così il noioso processo di decomprimere file.zip e quindi copiare ogni file, uno alla volta per eseguire cat.

Sono zoppo quando si tratta di scrivere una sceneggiatura e di aver giocato con più comandi, nessuno ha funzionato.

    
posta sdw215 11.11.2015 - 23:11
fonte

3 risposte

1

Quindi ho eseguito alcuni test e sembra che gzcat (ed event zcat ) su OS X funzionino solo per i file compressi con gzip e non per i file che utilizzano la compressione zip standard. Detto questo, credo che questo sia quello che stai cercando:

"sub.domain.tld.ssl.zip" contiene 2 file:

  • "sub.domain.tld.crt" (certificato SSL)
  • "sub.domain.tld.key" (chiave privata RSA)

Per stampare tutti i file su STDOUT , dovresti usare unzip -p

A " cat " del certificato, è possibile utilizzare il seguente comando:

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

Alla " cat " della chiave privata, puoi utilizzare il seguente comando:

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

In seguito, di cui potresti fare ciò che desideri, ad esempio creare un piccolo script o una funzione:

#!/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"

Lo script sopra prenderà 2 argomenti (che dovrebbero idealmente essere racchiusi tra virgolette):

  1. Nome file del file zip
  2. Convenzione di denominazione dei file cert / chiave

Se il nome dello script era sslinstazip.sh , lo avresti eseguito in questo modo:

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

Ci sono ovviamente molti modi in cui puoi modificarlo per soddisfare le tue esigenze personali, ma in questo caso, unzip è in realtà il tuo amico.

    
risposta data 12.11.2015 - 05:14
fonte
0

In realtà ho trovato un modo per farlo con l'aiuto di un amico al lavoro stasera.

#!/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

salvato in TextWrangler come uzipcat.sh e eseguito chmod u + x

Per eseguirlo, digito ./uzipcat.sh sslfilename.zip e lo estrae e stampa il contenuto.

Grazie per l'interesse e i suggerimenti!

    
risposta data 14.11.2015 - 06:29
fonte
-2

Salta la decompressione e usa gzcat direttamente. Non sono sicuro di cosa significhi "installare un SSL", ma se chiedi una risposta a domande con quel dettaglio, collegalo in un commento qui e ti darò un'occhiata.

Inoltre, creare uno script di shell breve potrebbe aiutarti a scegliere i requisiti della tua automazione se Automator non è abbastanza potente per le tue esigenze.

    
risposta data 11.11.2015 - 23:21
fonte

Leggi altre domande sui tag