Md5 karma sonucu kabuk nasıl boru


12

Sonucunu md5sumbaşka bir komuta dönüştürmenin basit bir yolunu arıyorum . Bunun gibi bir şey:

$echo -n 'test' | md5sum | ...

Benim sorunum md5sumsadece dizenin hash değil, aynı zamanda girişin stdin geldiğini gösteren bir hipen çıktılar. Adam dosyasını kontrol ettim ve çıktıyı kontrol etmek için bayrak bulamadım.


4
Not: echo -nMetin verileri bilinmiyorken kullanmamaya dikkat edin . printf '%s' "$DATA"Bunun yerine kullanın . Bunun aksine echo -n "$DATA", ne zaman DATA="-n"(diğer örneklerin yanı sıra) çalışacaktır .
Stéphane Gimenez

Yanıtlar:


14

Cut komutunu kullanabilirsiniz ; her giriş satırından belirli bir karakter / bayt aralığını kesmenizi sağlar. MD5 karma uzunluğu sabit olduğundan (32 karakter), -c 1-32giriş satırından yalnızca ilk 32 karakteri tutma seçeneğini kullanabilirsiniz :

echo -n test | md5sum | cut -c 1-32

Alternatif olarak, cutsatırı her boşlukta bölmeyi ve yalnızca ilk alanı çıkarmayı söyleyebilirsiniz : (boşluk karakteri etrafındaki tırnak işaretlerini not edin)

echo -n test | md5sum | cut -d " " -f 1

Daha fazla seçenek için kesim kılavuzuna bakın .


Bunu da düşündüm! -d+ ' Yı seçtim, -fböylece daha sonra veya daha sonra md5sumdeğiştirilebilir sha1sum.
Stéphane Gimenez

awkçok çalışıyor: echo -n test | md5sum | awk -F" " '{print $1}' veyaawk -F" " '{print $1}' <(echo -n test | md5sum)
laebshade

Cevap için teşekkür ederim. @ laebshade Aslında, printf kullanmanız gerekir, aksi takdirde sonunda yeni bir satır karakteri
çıkacaktır

@ laebshade: varsayılan -F" "seçenek olduğu için awk, görmek çok garip awk.
enzotib

3

Şunları yapabilirsiniz cut:

echo -n 'test' | md5sum | cut -d' ' -f1

Burada, -d' 'alanı sınırlayıcı olarak seçer ve -f1ilk alanı (sınırlayıcıdan önce) ister.


2

Kullanılması awk çok cezayı çalışır:

echo -n 'test' | md5sum | awk '{print $1}'

Başka bir yol bir alt dize yapmaktır. Md5 hash'in 32 karakterli bir dize olduğunu bildiğiniz için şunları kullanabilirsiniz:

HASH=$(echo -n 'test' | md5sum -) && echo ${HASH:0:32}

Bu sadece dize manipülasyonları, bu yüzden seçim var!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.