如何将从文件读取的行随机化为数组并在bash脚本中循环遍历数组

时间:2010-12-15 19:50:18

标签: ubuntu bash

我有一个包含着名引文的文本文件。

我想编写一个执行以下操作的bash shell脚本:

  1. 将文件的所有行读取到一个数组中(每行是一个数组条目)
  2. '随机播放'或随机化数组位置
  3. 循环'随机'数组并打印当前行
  4. 我是bash脚本新手。谁能告诉我怎么做?

    我在Linux Ubuntu上运行。

    这就是我现在所拥有的:

    while read -r -a array
    do
      print "${array[@]}"
    done < myfile.txt
    

    我需要随机化读取行。任何人都知道我如何修改脚本来做我想做的事情?

    我尝试使用sort --random-sort,如下所示:

    done < cat myfile.txt | sort --random-sort
    

    但是bash发出了错误消息

1 个答案:

答案 0 :(得分:0)

您可以使用fortune计划。您可能必须修改文件以包含所需的分隔符。

修复错误消息:

done < <(sort --random-sort myfile.txt)

sort --random-sort myfile.txt | while