如何使用shell脚本提取文件第7行中的文本 例如,我有类似的东西,
abc
def
ghi
jkl
mno
pqr
stu
我需要打印文字stu
。
可以总结一下这方面的帮助。请...
答案 0 :(得分:3)
您可以使用awk
:
awk 'NR==7' file
因为NR
是指行数。
同样在sed
:
sed -n '7p' file
更新甚至更好(thanks 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
答案 1 :(得分:0)
除了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