我编写了一个脚本,它需要一个csv文件,并用一些字符串(Key)替换第二列的HASH中的第三列。 经过256行后,我得到一个错误使用Awk和Fork时出现“资源暂时不可用”
awk:cmd。 3:(FILENAME = C:/hanatest/test.csv FNR = 257)fatal: 无法为`echo -n E5360712819A7EF1584E2FDA06287379FF5CC3E0A5M7J6PiQMaSBut52ZQhVlS4 | openssl ripemd160 |切-f2 -d”“”(叉:资源暂时不可用 )
我改变CSV文件,我后256行始终得到了同样的错误。
这里是我的代码:
awk -F "," -v env_var="$key" '{
tmp="echo -n "$2env_var" | openssl ripemd160 | cut -f2 -d\" \""
tmp | getline cksum
$3=toupper(cksum)
print
}' //test/source.csv > //ziel.csv
你能帮帮我吗?
这里我的样本输入:
25,XXXXXXXXXXXXXXXXXX,?
44,YYYYYYYYYYYYYYYYYY,?
84,ZZZZZZZZZZZZZZZZZZ,?
,在这里我的预期输出:
25,XXXXXXXXXXXXXXXXXX,301E2A8BF32A7046F65E48DF32CF933F6CAEC529
44,YYYYYYYYYYYYYYYYYY,301E2A8BF32A7046F65E48EF32CF933F6CAEC529
84,ZZZZZZZZZZZZZZZZZZ,301E2A8BF32A7046F65E48EF33CF933F6CAEC529
在此先感谢
您正在为每个输入行运行一个新进程,并且我怀疑没有终止它,所以您最多只能访问256个进程或管道或其他内容。 'ulimit -a'说什么? [编辑:其实,我很困惑你要在代码中做什么,但我仍然认为你达到了极限。] – gilez
感谢您的回复,在这里输出ulimit -a: $ ulimit文件大小(块,-f)无限制 打开文件(-n)256 管道大小(512字节, - - )无限制 p)8 堆栈大小(千字节,-s)2032 cpu时间(秒,-t)无限制 最大用户进程(-u)256 虚拟内存(千字节,-v)无限制 – Houssem
任何想法将代码更改为得到我的输出? – Houssem