作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
假设我有一个名为“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
和tail
$ 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/
我是一名优秀的程序员,十分优秀!