重击如何将文本文件中的随机行分配给变量?

时间:2019-04-14 20:26:58

标签: bash text variable-assignment

我有一个包含许多行的文本文件。我需要这样做:

  1. shuf txt.txt
  2. 从shuf输出中读取第一行到变量$ line

如何在bash脚本的一行中表示它?

现在是这样的:

shuf txt.txt -o aaa.txt
n=$(head -n 1 aaa.txt)
rm -rf aaa.txt

您可能会注意到,这不是很好

2 个答案:

答案 0 :(得分:0)

听起来像作业。这里有一些提示。

为命令的结果分配变量:

x=`command`

管道分配:

x=`command1 | command2`

将command1输出的第一行分配给变量:

x=`command1 | head -n1`

答案 1 :(得分:0)

您可以使用shuf轻松完成此操作:

n=$(shuf -n1 file)

https://www.gnu.org/software/coreutils/manual/html_node/shuf-invocation.html

关于stackoverflow.com的相关问题:What's an easy way to read random line from a file in Unix command line?