【问题标题】:Bash. How to assign random line from text file to a variable? [duplicate]重击。如何将文本文件中的随机行分配给变量? [复制]
【发布时间】:2019-09-04 21:04:11
【问题描述】:

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

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

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

现在是这样的:

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

如你所见,它不是很好

【问题讨论】:

  • 你尝试过什么吗?
  • 我已经做了很长时间了。我想知道优雅的方式
  • 非常感谢
  • @oguzismail: head -n1 是不必要的。 n=$(shuf -n 1 file)..
  • @I'L'I wew,我不知道。谢谢!

标签: bash text variable-assignment


【解决方案1】:

您可以使用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?

【讨论】:

    【解决方案2】:

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

    将变量分配给命令的结果:

    x=`command`
    

    用管道赋值:

    x=`command1 | command2`
    

    将 command1 输出的第一行赋值给一个变量:

    x=`command1 | head -n1`
    

    【讨论】:

      猜你喜欢
      • 2020-08-11
      • 2019-11-13
      • 2013-03-11
      • 2022-12-04
      • 1970-01-01
      • 2019-06-22
      • 2012-06-11
      相关资源
      最近更新 更多