Подавить имя файла из вывода sha512sum


11

Может быть, это тривиальный вопрос, но на manстранице я не нашел ничего полезного. Я использую Ubuntu и bash.

Нормальный выход для sha512sum testfileIS

<hash_code>  testfile

Как подавить вывод имени файла? Я хотел бы получить только

<hash_code>

2
Вам нужна помощь других инструментов, таких какsha512sum testfile | awk '{print $1}'
cuonglm

Ответы:


17

Нет способа подавить это, но так как SHA - это всегда одно слово без пробелов, вы можете сделать:

sha512sum testfile | cut -d " " -f 1 

или например

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


1

Может быть, просто добавьте псевдоним в свой ~/.profileспособ вырезания первого аргумента Anthon'а, который поможет в качестве постоянного решения,

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

Чтобы заставить его работать, нам, очевидно, нужно будет запустить его один раз, как, . .profileв ~.

Теперь сдача только sha <file_name>даст вам то, что вы хотите.


1
Вам нужно процитировать $1, в противном случае вы предоставляете дыры в безопасности в вашей функции unix.stackexchange.com/q/171346/38906
cuonglm

-1

Я также был разочарован форматом sha sha sum stdout, который я использовал;

sha512sum | tr " " "\n" | head -n 1
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.