如何做一个脚本BASH这需要随机的文本的文件?[重复]
题
这个问题已经有一个答案在这里:
我有文件,如:
aaa
bbb
ccc
ddd
eee
和我想做一个脚本砸这可能需要随机行这一文本的文件,并回到我变什么的。
我听说它可以做一些AWK.任何想法?
更新: 我现在使用这样的:
shuf-n1text.txt
谢谢你的帮助!
解决方案
请见:读线随机的
其他提示
我用一个脚本,这样产生一个随机的线从我singature报价文件:
#!/bin/bash
QUOTES_FILE=$HOME/.quotes/quotes.txt
numLines=`wc -l $QUOTES_FILE | cut -d" " -f 1`
random=`date +%N`
selectedLineNumber=$(($random - $($random/$numLines) * $numLines + 1))
selectedLine=`head -n $selectedLineNumber $QUOTES_FILE | tail -n 1`
echo -e "$selectedLine"
我会用sed p参数...
sed -n '43p'
其中43可能是一个变量...
我不知道很多关于awk但是我猜你可以做几乎同样的事情(但是我不知道如果awk是图灵完成...)
这里有一个砸的方式,不带任何外部工具
IFS=$'\n'
set -- $(<"myfile")
len=${#@}
rand=$((RANDOM%len+1))
linenum=0
while read -r myline
do
(( linenum++ ))
case "$linenum" in
$rand) echo "$myline";;
esac
done <"myfile"
不隶属于 StackOverflow