从awk调用shell非常慢

时间:2018-09-14 08:20:01

标签: bash awk

我想在运行中用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

0 个答案:

没有答案