2012-06-27 128 views
-3

如何使用sed在随机数行(但不超过150行)中生成随机数(最多1行,最多5个字段长度)?是否可以或更好地使用Perl?使用sed在随机数行中生成随机数

+0

为什么要使用'sed'? 'Perl'甚至'shell脚本'都可以完成这项工作,但是我没有在这里看到'sed'的用例 – Scharron

+1

请发布一些[格式正确的](http://stackoverflow.com/编辑帮助)代码您已应用于该问题。另外,请包含一份格式正确的**期望输出样本**,以便人们了解您尝试实现的结果。 –

回答

0

sed是关于解析和编辑现有文本流,而不是真正生成它们。几乎所有的编程语言(包括perl)都会更适合这项任务。

+0

我只有sed和perl才能使用。如何使用Perl来做到这一点? – user1246172

2

我不认为sed是这个工具,但如果你想在unix生成随机行的随机数,像这样的事:

od -An -t d2 -w10 /dev/urandom | head -n $((RANDOM % 150)) 

注:这些符号16位号码,更新-t-w来改变这一点。

OD选项

  • -An不输出地址。
  • -t d2输出2个字节的数字并转换为十进制。
  • -w10字段数乘以字节长度。

perl的解决方案

使用int rand(n)取得0-8的随机整数多达n(见perldoc -f rand)。

for (1 .. int rand(150)) { 
    print int rand(10), " " for (1 .. 5);    
    print "\n"; 
} 
+0

如果您只有sed或perl在您的处置,该怎么办? – user1246172