【问题标题】:Generate random numbers in a random number of rows using sed使用 sed 在随机行数中生成随机数
【发布时间】:2012-06-27 08:04:26
【问题描述】:

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

【问题讨论】:

  • 为什么要使用sedPerl 甚至 shell script 都可以完成这项工作,但我在这里看不到 sed 的用例
  • 请通过发布您已应用于该问题的一些properly formatted 代码来改进您的问题。此外,请包含格式正确的预期输出示例,以便人们了解您想要达到的结果。

标签: random sed numbers rows


【解决方案1】:

我不认为sed 是解决此问题的工具,但如果您想在unix 上的随机行上生成随机数,可以这样做:

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

注意:这些是带符号的 16 位数字,更新 -t-w 以更改它。

其他选项

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

perl 解决方案

使用int rand(n) 获取从0 到n 的随机整数(参见perldoc -f rand)。

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

【讨论】:

  • 如果您只使用 sed 或 perl 怎么办?
【解决方案2】:

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

【讨论】:

  • 我只有 sed 和 perl 可供我使用。如何使用 perl 做到这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2023-01-03
  • 1970-01-01
相关资源
最近更新 更多