Linux如何显示文件指定行数的内容;显示第一行、中间几行和最后几行

时间:2021-05-27 02:27:05

1、tail -n +/-数字 文件名

2、head -n 数字 文件名

3、sed -n "开始行,结束行p" 文件名

4、sed -n '1p;20,40p; "显示第一行和20到40行'

5、sed -n 7p file_name : 显式第7行

6、cat file_name | awk 'NR==1 || NR==2 || NR==10'  显式第1、2、10行

统计行数的几种方法:

wc -l  test.txt显示文件的行数

sed -n '$=' test.txt 显示文件的行数  -n表示只打印匹配的结果

grep -c "" filename        -c, --count               print only a count of matching lines per FILE

awk 'END{print NR}' filename   awk的BEGIN和END表示匹配开始之前匹配结束之后执行的动作

效率对比:

生成测试所需文件:awk 'BEGIN{for(i=0;i<10000000;i++)print i}'>>test

wc方法: time wc -l test

1、time wc -l test  用时0.026s
1000000 test

real    0m0.014s
user    0m0.009s
sys    0m0.003s

2、grep方法,用时0.080s

time grep -c "" test
1000000

real    0m0.041s
user    0m0.037s
sys    0m0.002s

3、用时0.159s

time sed -n '$=' test
1000000

real    0m0.080s
user    0m0.073s
sys    0m0.006s

4、用时0.095s

time awk 'END{print NR}' test
1000000

real    0m0.049s
user    0m0.042s
sys    0m0.004s

结论:wc>grep>awk>sed

参考:1、http://www.linuxidc.com/Linux/2012-06/63680.htm

2、http://man.linuxde.net/sed

3、http://man.linuxde.net/awk