如何使用 shell 脚本提取文件第 7 行中的文本例如,我有类似的内容,
abc
def
ghi
jkl
mno
pqr
stu
我需要打印文本stu
。
sumbdy 可以在这方面提供帮助。请...
你可以用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
除了 awk 之外,还有许多其他实用程序可以组合来执行此操作。这里还有一些:
head
和tail
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