我需要获取一个由硬件设备生成的随机数的高速流,并将其拆分为不同的子流。出于测试目的,我考虑将/dev/urandom作为数据源。有什么Linux工具可以使用吗?如果没有-请帮助一个bash脚本来完成。
子流速度之和应等于初始流速度(或接近)。子流稍后通过在netcat和/dev/tcp之间创建一个套接字并使用文件描述符3(或另一个)发送给最终用户。
最佳答案
请考虑使用以下代码:
od -An -t o2 /dev/urandom | awk '{ print $2 }' | awk '{$2= $1/4;$3= $1-$2;print $1" "$2" "$3}'
第一列将是主流,您可以选择将它拆分为n个列或流,这里我已经尝试将它拆分为两列。即主流和两个子流,子流将相加为主流。
上述代码的示例输出为:
032621 8155.25 24465.8
163465 40866.2 122599
023403 5850.75 17552.2
100755 25188.8 75566.2
052763 13190.8 39572.2
015401 3850.25 11550.8
062161 15540.2 46620.8
100415 25103.8 75311.2
142550 35637.5 106912
141450 35362.5 106088
057473 14368.2 43104.8
023430 5857.5 17572.5
007112 1778 5334
036372 9093 27279
另外,我对awk不是很在行,所以代码的awk部分可能会有很多改进。
关于linux - 有什么方法可以将从/dev/urandom生成的字符流拆分为不同的子流?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52018957/