0

如何使用 shell 脚本提取文件第 7 行中的文本例如,我有类似的内容,

abc
def
ghi
jkl
mno
pqr
stu

我需要打印文本stu

sumbdy 可以在这方面提供帮助。请...

4

2 回答 2

3

你可以用awk

awk 'NR==7' file

asNR是指行数。

也在sed

sed -n '7p' file

更新甚至更好(感谢pixelbeat

sed -n '7{p;q}' file

测试看看第二个选项有多好:

让我们用 1,000,000 行填充一个文件:

$ for i in {1..1000000}; do echo $i>>a; done

现在让我们比较一下每个使用的时间sed

$ time sed -n '3p' a
3

real    0m0.098s
user    0m0.084s
sys     0m0.008s
$ time sed -n '3{p;q}' a
3

real    0m0.012s
user    0m0.000s
sys     0m0.008s

速度快了 8 倍!

$ echo "0.098 / 0.012" | bc
8
于 2013-06-25T12:09:43.737 回答
0

除了 awk 之外,还有许多其他实用程序可以组合来执行此操作。这里还有一些:

headtail

head -n 7 file | tail -n 1

perl

perl -ne 'print if $.==7' file

ruby实际上与perl

ruby -ne 'print if $.==7' file

可能有一种更短的方法,这里是python:

python -c "import sys; x=[l for l in sys.stdin]; sys.stdout.write(x[6])" < x
于 2013-06-25T12:12:17.577 回答