"Resource temporarily unavailable" 使用 Awk 和 Fork 时

"Resource temporarily unavailable" when using Awk and Fork

我写了一个脚本,它需要一个 csv 文件,并将第三列替换为第二列的 HASH 和一些字符串 (Key)。 在 256 行之后,我得到一个错误

awk: cmd. line:3: (FILENAME=C:/hanatest/test.csv FNR=257) fatal: cannot create child process for `echo -n E5360712819A7EF1584E2FDA06287379FF5CC3E0A5M7J6PiQMaSBut52ZQhVlS4 | openssl ripemd160 | cut -f2 -d" "' (fork: Resource temporarily unavailable)

我更改了 CSV 文件,但在 256 行后我总是得到同样的错误。

这是我的代码:

awk -F "," -v env_var="$key" '{
    tmp="echo -n "env_var" | openssl ripemd160 | cut -f2 -d\" \""
tmp | getline cksum
=toupper(cksum)
print
}' //test/source.csv > //ziel.csv

你能帮帮我吗?

这里是我的示例输入:

25,XXXXXXXXXXXXXXXXXX,?
44,YYYYYYYYYYYYYYYYYY,?
84,ZZZZZZZZZZZZZZZZZZ,?

这是我的预期输出:

25,XXXXXXXXXXXXXXXXXX,301E2A8BF32A7046F65E48DF32CF933F6CAEC529
44,YYYYYYYYYYYYYYYYYY,301E2A8BF32A7046F65E48EF32CF933F6CAEC529
84,ZZZZZZZZZZZZZZZZZZ,301E2A8BF32A7046F65E48EF33CF933F6CAEC529

提前致谢

让我们先让您的代码更健壮:

awk -F "," -v env_var="$key" '{
    tmp="echo -n 7"  env_var "7 | openssl ripemd160 | cut -f2 -d7 7"
    if ( (tmp | getline cksum) > 0 ) {
         = toupper(cksum)
    }
    close(tmp)
    print
}' /test/source.csv > /ziel.csv

现在 - 你还有问题吗?如果您正在考虑使用 getline,请务必阅读并完全理解正确的用法以及 http://awk.freeshell.org/AllAboutGetline.

中讨论的所有注意事项