ファイルからランダムなテキストを取得するスクリプトをBASHで実行するにはどうすればよいですか?[重複]

StackOverflow https://stackoverflow.com/questions/910523

  •  06-09-2019
  •  | 
  •  

質問

次のようなファイルがあります:

ああ

BBB

CC

DD

ええ


そして、このテキストファイルのランダムな行を取得し、それを変数または何かとして返すことができるスクリプトをBASHで実行したいと考えています。

AWKを使えばできるそうです。何か案は?

アップデート: 私は今これを使用しています:

shuf -n 1 text.txt

皆さん、助けてくれてありがとう!

役に立ちましたか?

解決

を参照してください。 行する

他のヒント

私は私の署名引用符ファイルからランダムに行を生成するには、このようなスクリプトを使用します:

#!/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"

私は、p引数でsedを使用することになり...。

sed -n '43p' 

43は、可変可能性がどこ...

私はAWKについて多くを知らないが、私は(awkはチューリング完全...である場合しかし、私は知らない)あなたは、ほぼ同じことを行うことができると思います。

ここでは、bashの道だ、ワット/任意の外部ツールO

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