Supprimer le nom de fichier de la sortie de sha512sum

11

C'est peut-être une question banale, mais dans la manpage, je n'ai pas trouvé quelque chose d'utile. J'utilise Ubuntu et bash.

La sortie normale pour sha512sum testfileest

<hash_code>  testfile

Comment supprimer la sortie du nom de fichier? Je voudrais obtenir juste

<hash_code>
BowPark
la source
2
Vous avez besoin de l'aide d'autres outils, commesha512sum testfile | awk '{print $1}'
cuonglm

Réponses:

17

Il n'y a aucun moyen de supprimer cela, mais comme le SHA est toujours un seul mot sans espaces, vous pouvez le faire:

sha512sum testfile | cut -d " " -f 1 

ou par exemple

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

Peut-être que l'ajout d'un alias dans votre ~/.profilemanière de couper le premier argument de l'Anthon serait une solution permanente,

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

Pour le faire fonctionner, nous devions évidemment l'exécuter une fois comme, . .profiledans ~.

Maintenant, mettre seulement sha <file_name>donnerait la façon dont vous le souhaitez.

Keyshov Borate
la source
1
Vous devez citer $1, sinon, vous fournissez des failles de sécurité dans votre fonction unix.stackexchange.com/q/171346/38906
cuonglm
-1

J'ai également été frustré par le format stdout sha ?? sum, j'ai utilisé;

sha512sum | tr " " "\n" | head -n 1
user254289
la source