这个问题已经有一个答案在这里:

我有文件,如:

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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top