我想在运行中用awk处理一个值。 值通过二进制进行处理。 我正在尝试按照以下方式进行操作,但是suuuuuper速度很慢。无法使用慢。 未经处理的500万条记录在30秒内完成。有了它-我等待了几个小时,没有结果。
我做错什么了吗? 是否有使用外部应用程序在awk中处理值的正确方法?
重击
#!/bin/bash
...
cat ${INFILE} | awk -F"\t" -v sh_dir="${DIRECTORY_PATH_SH}" outfile="${OUTFILE}" -f process.awk
process.awk
{
cmd=sh_dir"/sha_cipher"
print $2 |& cmd
close(cmd, "to")
cmd |& getline encrypted_id
close(cmd)
printf "%s\t%s\t%s\n", $1, encrypted_id, $19 >> outfile
}
输入:
2018-09-14 | AlexOrange | 15 | HTTP | 86914702 | 1 | 1 |否| 79634 | 48249 | 127883 |左|模型1 | SUBTYPE255 A536 | RS | SO | 94 | 长生不老药| RTT
输出:
2018-09-14 | 36c8387b7e334c38786d6d497b | RTT