gpt4 book ai didi

linux - 如何从 bash 中的文本文件中读取第 n 行?

转载 作者:IT王子 更新时间:2023-10-29 00:40:37 25 4
gpt4 key购买 nike

假设我有一个名为“demo.txt”的文本文件,如下所示:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

现在我想读取某一行,比如第 2 行,使用如下所示的命令:

Line2 = read 2 "demo.txt"

所以当我打印它时:

echo "$Line2"

我会得到:

5 6 7 8

我知道如何使用“sed”命令从文件中打印第 n 行,但不知道如何读取它。我也知道“读取”命令,但不知道如何使用它来排序某行。

在此先感谢您的帮助。

最佳答案

使用headtail

$ head -2 inputFile | tail -1
5 6 7 8

通用版本

$ line=2
$ head -"$line" input | tail -1
5 6 7 8

使用 sed

$ sed -n '2 p' input
5 6 7 8
$ sed -n "$line p" input
5 6 7 8

它有什么作用?

  • -n 抑制模式空间的正常打印。

  • '2 p' 指定行号,2 or ($line for more general), p 打印当前模式空间的命令

  • input 输入文件

编辑

要获得某些变量的输出,请使用一些命令替换技术。

$ content=`sed -n "$line p" input`
$ echo $content
5 6 7 8

$ content=$(sed -n "$line p" input)
$ echo $content
5 6 7 8

获取bash数组的输出

$ content= ( $(sed -n "$line p" input) )
$ echo ${content[0]}
5
$ echo ${content[1]}
6

使用 awk

也许 awk 解决方案看起来像

$  awk -v line=$line 'NR==line' input
5 6 7 8

感谢 Fredrik Pihl 的建议。

关于linux - 如何从 bash 中的文本文件中读取第 n 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27056872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com