SED没有分裂得到我想要的子串

时间:2014-07-11 09:11:40

标签: regex bash sed solaris

我正在使用消息验证代码散列文件,然后我需要在base64中对文件散列进行编码。为此,我使用OpenSSL如下:

#Create HMAC-SHA2 hash from file
filehash=`mac -a sha256_hmac -k private.key $filename`
##base64 encode filehash
filehash_64=`echo "$filehash" | /usr/sfw/bin//openssl enc -base64 | sed 's/^.*= //'`

问题是OpenSSL输出原始哈希和编码哈希,所以我使用SED来分割字符串并获取编码部分。但是,当我测试它时,它不会分裂。

编码的filehash

YmUzMjA1NzE2MzIyZDYwZWN  YTU5MmRiMGUxYWVjZTk3OQo=

我想要的只是:

YTU5MmRiMGUxYWVjZTk3OQo=

我是否遗漏了SED代码中的内容,或者我的管道错误了?

sed 's/^.*= //'`

2 个答案:

答案 0 :(得分:2)

您可以使用此sed命令。

sed 's/^.* //'

示例:

$ echo 'YmUzMjA1NzE2MzIyZDYwZWN  YTU5MmRiMGUxYWVjZTk3OQo=' | sed 's/^.* //'
YTU5MmRiMGUxYWVjZTk3OQo=

答案 1 :(得分:0)

这个awk命令应该可以工作

awk '{print $2}'