【问题标题】:How can I get a random word from a string in posix shell?如何从 posix shell 中的字符串中获取随机单词?
【发布时间】:2021-12-29 21:13:59
【问题描述】:

我在 posix 脚本中有一个包含几个单词的字符串:

mystr="word1 word2 word3"

我想随机选择一个词。所以我最终做了:

echo "$mystr" | cut -d " " -f "$(shuf -i 1-"$(echo "$mystr" | wc -w)" -n 1)"

这看起来很丑陋。有更好的做法吗?

【问题讨论】:

    标签: unix posix


    【解决方案1】:

    下面是如何使用 awk 将字符串拆分成一个数组,然后打印该数组的一个随机元素。

    echo "word1 word2 word3" |
      awk 'BEGIN { srand() }
                 { split($0,a); print a[1+int(rand()*length(a))] }'
    

    在busybox上测试,但应该可以在任何POSIX系统上工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2017-03-17
      • 1970-01-01
      • 2012-11-25
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多