我正在尝试为每一行中的特定列生成sha256哈希。我尝试使用该小组其他成员提供的解决方案生成sha256hash。感谢Ravinder Singh。除了实际的sha命令之外,我使用了完全相同的代码。对于AIX,它是shasum -a 256。
代码:
#include <iostream>
using namespace std;
int main()
{
float f, a, b;
int x, y, c;
cout << "enter the float value" << endl; cin >> f;
x = (int)f; cout << "before " << x;
a = b = f;
c = 1;
while (b != int(a))
{
b = b * 10;
a = a * 10;
c = c * 10;
}
y = (f * c) - (x * c);
cout << "after " << y;
}
这很好用。唯一的问题是这段代码的性能非常慢。目前需要花费一分钟来记录1000条记录。我需要一次性生成大量哈希,以用于超过1000万条记录。无论如何,性能可以提高吗?
我尝试使用Lorinczy Zsigmond建议的perl。现在,我可以在10秒内处理一百万行。
代码:
awk -F"|" -v var="10" '
NR==1;
NR>1{
"echo "$2"|shasum -a 256" | getline shaoutput;
split(shaoutput, sha, " ");
print $1, $2, sha[1]
}' OFS="|" inputfile.dat >outputfile.dat