【发布时间】: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)"
这看起来很丑陋。有更好的做法吗?
【问题讨论】:
我在 posix 脚本中有一个包含几个单词的字符串:
mystr="word1 word2 word3"
我想随机选择一个词。所以我最终做了:
echo "$mystr" | cut -d " " -f "$(shuf -i 1-"$(echo "$mystr" | wc -w)" -n 1)"
这看起来很丑陋。有更好的做法吗?
【问题讨论】:
下面是如何使用 awk 将字符串拆分成一个数组,然后打印该数组的一个随机元素。
echo "word1 word2 word3" |
awk 'BEGIN { srand() }
{ split($0,a); print a[1+int(rand()*length(a))] }'
在busybox上测试,但应该可以在任何POSIX系统上工作。
【讨论】: