Suprimir o nome do arquivo da saída de sha512sum

11

Talvez seja uma pergunta trivial, mas na manpágina não encontrei algo útil. Estou usando o Ubuntu e bash.

A saída normal para sha512sum testfileé

<hash_code>  testfile

Como suprimir a saída do nome do arquivo? Eu gostaria de obter apenas

<hash_code>
BowPark
fonte
2
Você precisa de ajuda de outras ferramentas, comosha512sum testfile | awk '{print $1}'
cuonglm

Respostas:

17

Não há como suprimir isso, mas como o SHA é sempre uma única palavra sem espaços, você pode:

sha512sum testfile | cut -d " " -f 1 

ou por exemplo

< testfile sha512sum | sed 's/  -//'
Anthon
fonte
1
sha512sum testfile | awk '{print $1}'
Kurian
fonte
1

Talvez apenas adicione um alias ao seu modo, de ~/.profileacordo com o Anthon de cortar o primeiro argumento, ajudaria como uma solução permanente,

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

Para fazê-lo funcionar, obviamente precisaríamos executá-lo uma vez como, . .profileem ~.

Agora, colocar apenas sha <file_name>renderia da maneira que você deseja.

Keyshov Borate
fonte
1
Você precisa citar $1, caso contrário, você fornece falhas de segurança em seus função unix.stackexchange.com/q/171346/38906
cuonglm
-1

Eu também fiquei frustrado com o formato stdout do sha ?? sum, eu usei;

sha512sum | tr " " "\n" | head -n 1
user254289
fonte