Menekan nama file dari output sha512sum

11

Mungkin itu adalah pertanyaan sepele, tetapi di manhalaman saya tidak menemukan sesuatu yang berguna. Saya menggunakan Ubuntu dan bash.

Output normal sha512sum testfileadalah

<hash_code>  testfile

Bagaimana cara menekan output nama file? Saya ingin mendapatkan yang adil

<hash_code>
BowPark
sumber
2
Anda memerlukan bantuan dari alat lain, sepertisha512sum testfile | awk '{print $1}'
cuonglm

Jawaban:

17

Tidak ada cara untuk menekan itu, tetapi karena SHA selalu satu kata tanpa spasi yang dapat Anda lakukan:

sha512sum testfile | cut -d " " -f 1 

atau mis

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

Mungkin hanya menambahkan alias dalam ~/.profilecara Anda memotong argumen pertama Anthon akan membantu sebagai solusi permanen,

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

Untuk membuatnya bekerja, kita jelas perlu menjalankannya sekali, . .profilemasuk ~.

Menempatkan hanya sha <file_name>akan menghasilkan seperti yang Anda inginkan.

Borongan Keyshov
sumber
1
Anda perlu mengutip $1, jika tidak, Anda memberikan lubang keamanan di fungsi Anda unix.stackexchange.com/q/171346/38906
cuonglm
-1

Saya juga merasa frustrasi dengan format stdout sum, saya menggunakan;

sha512sum | tr " " "\n" | head -n 1
pengguna254289
sumber