Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何从bash中的文本文件中读取第n行?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

假设我有一个名为“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行,但不知道如何读取它.我也知道’读
假设我有一个名为“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行,但不知道如何读取它.我也知道’读’命令,但不知道如何使用它来排序某一行.

在此先感谢您的帮助.

解决方法

使用头部和尾部

$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或($line用于更一般),p命令用于打印当前模式空间
>输入输入文件

编辑

要将输出转换为某个变量,请使用一些命令替换技术.

$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行?全部内容,希望文章能够帮你解决linux – 如何从bash中的文本文件中读取第n行?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。