Bash 读取文件';随机删除行并记录它们

Bash 读取文件';随机删除行并记录它们,bash,shell,file,random,Bash,Shell,File,Random,我试图读取一个包含很多行的文本文件,并通过bash scrip使用logger记录它们。我实现了用以下代码逐行读取文件 #!/bin/bash filename=logger.txt [[ -f ${filename} ]] || exit 1 x=0 while read -r line; do logger "$line"; sleep 0.1; done < $filename exit 0 #/bin/bash fi

我试图读取一个包含很多行的文本文件,并通过bash scrip使用logger记录它们。我实现了用以下代码逐行读取文件

#!/bin/bash

filename=logger.txt
[[ -f ${filename} ]] || exit 1
x=0
while read -r line; do
            logger "$line";
           sleep 0.1;
    done < $filename
    exit 0
#/bin/bash
filename=logger.txt
[[-f${filename}]| |退出1
x=0
而read-r行;做
记录器“$line”;
睡眠0.1;
完成<$filename
出口0
但是如何随机读取行并记录它们

我正试着用这个,但没有成功

#!/bin/bash

filename=logger.txt
[[ -f ${filename} ]] || exit 1
x=0
while read -r line; do

         logger "%06d %s\n" $RANDOM "$line";
         sleep 0.1;
         done < $filename
         exit 0
#/bin/bash
filename=logger.txt
[[-f${filename}]| |退出1
x=0
而read-r行;做
记录器“%06d%s\n”$RANDOM“$line”;
睡眠0.1;
完成<$filename
出口0

我如何在脚本中实现随机函数,或者是否有其他选项来实现它?我尝试了shuf,但它只读取了一行,然后就停止了。

给定
-r
标志
shuf
连续地从输入文件输出随机行。因此,您可以:

while read -r line; do
    logger "$line"
    sleep .1
done < <(shuf -r "$filename")
读取-r行时
;做
记录器“$line”
睡觉

完成