Elimina il nome file dall'output di sha512sum


11

Forse è una domanda banale, ma nella manpagina non ho trovato qualcosa di utile. Sto usando Ubuntu e bash.

L'output normale per sha512sum testfileè

<hash_code>  testfile

Come sopprimere l'output del nome file? Vorrei ottenere solo

<hash_code>

2
Hai bisogno di aiuto da altri strumenti, comesha512sum testfile | awk '{print $1}'
cuonglm,

Risposte:


17

Non esiste un modo per sopprimerlo, ma poiché SHA è sempre una singola parola senza spazi, puoi fare:

sha512sum testfile | cut -d " " -f 1 

o ad es

< testfile sha512sum | sed 's/  -//'


1

Forse solo aggiungere un alias nel tuo modo ~/.profileper Anthon di tagliare il primo argomento sarebbe una soluzione permanente,

sha()
{
sha512sum -- "$1" | cut -d " " -f 1
}

Per farlo funzionare, ovviamente dovremmo eseguirlo una volta, come . .profilein ~.

Ora mettere solo sha <file_name>darebbe il modo in cui lo desideri.


1
Devi citare $1, altrimenti fornisci buchi di sicurezza nella tua funzione unix.stackexchange.com/q/171346/38906
cuonglm

-1

Sono stato anche frustrato dal formato stdout sha ?? sum, ho usato;

sha512sum | tr " " "\n" | head -n 1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.