linux - How to use functions in bash? -
this question has answer here:
i have file has hashes of files against filename. example,
fb7e0a4408e46fd5573ffb9e73aec021a9dcf426235c0ccfc37d2f5e09a68a23 /path/to/some/file 237e0a4408e46fe3573f239e73aec021a9dcf426235c023fc37d2f5e09a68a12 /path/to/another/file ... , on...
i need hash converted base64
encoded format.
so used combination of bash function , awk
.
here wrote,
#!/bin/sh base64encode() { $1 | openssl base64 -a } awk ' { t = base64encode $1; print t } ' file.txt
but not seem work. i'm using hashdeep
generate hash-list file , hashdeep
not support base64
encoded output. why i'm using openssl
.
any or tips regarding great!
edit:
the given answers work i'm having other issue seems.
usually cat filename | openssl dgst -sha256 | openssl base64 -a
gives base64
encoded output filename
file absoutely correct, , output hashdeep
matched output cat filename | openssl dgst -sha256
. so, thought of piping output obtained above step openssl base64 -a
base64
output. but, still different values actual result.
although might suited separate question perhaps, still appreciate support on this.
awk only:
$ awk '{ c="echo " $1 "|openssl base64 -a" c | getline r print r }' file zmi3ztbhndqwogu0nmzkntu3m2zmyjllnznhzwmwmjfhowrjzjqynjiznwmwy2nmyzm3zdjmnwuwowe2ogeymwo= mjm3ztbhndqwogu0nmzlmzu3m2yymzllnznhzwmwmjfhowrjzjqynjiznwmwmjnmyzm3zdjmnwuwowe2ogexmgo=
for tight one-liner version see @123's comment below.
... , @edmorton's super-tight (read: super-proof) version.
Comments
Post a Comment