问题描述
查看前N行,用head;
查看后N行,用tail;
查看行区间,指定行数的数据,貌似有点儿不知所措。what?nani?
查看,从第n行,到最后一行,好像很简单,but?我写不出来!!此处省略三个字……
实战案例
1.查看前N行数据
显示前10行数据
#head -n 10 /etc/passwd 方法一
#head -10 /etc/passwd 方法二#cat /etc/passwd | head -n 10 方法三
#cat /etc/passwd | head -10 方法四#sed -n '1,10p' /etc/passwd 方法五
特别说明:
以上写法,表面不同,实质换汤不换药。下面的方法不再照此延伸。变态组合最终达到效果的方法,不在此列,纯干货!
2.查看后N行数据
查看最后10行数据
#tail -n 10 /etc/passwd
3.查看前/后N行以外的数据(不知道数据总共有多少行)
1.查看除最后10行以外的所有数据
#head -n -10 /etc/passwd 方法一(注意,10前面有个-号)
解析,head -n 10,默认是查前10行;10前面添加“-”是取反的意思,此时的效果就是不取最后10行(也就是取除最后10行以外的所有数据)
2.查看从第10行到最后一行数据(特别注意+)
#tail -n +11 /etc/passwd 方法一(注意,10前面有个+号)
解析,tail -n 10,本是查最后10行,前面带个+,就取反了,查的是除了最后11-1行以外的所有行。
特别注意:这里的+11,不是剔除前11行,实际情况仅仅剔除前11-1=10行,也就是说(要想剔除前10行,这里要写11)
tail -n +0 num.txt
tail -n +1 num.txt
效果是一样的,因为 0-0=0,1-1 =0;
本案例中,如果数字N,前面如果没有+,结果就天壤之别。
4.查看n,m行区间的数据
查看第5行到第10行
#sed -n '5,10p' /etc/passwd 方法一(比较简便)
#head -n 10 /etc/passwd | tail -5 方法二(前head取前10行,然后再取这10行中的后5行)
5.查看指定行,仅此一行的数据
仅查看第5行
#sed -n '5,5p' /etc/passwd 方法一
#head -n 5 num.txt | tail -n 1 方法二(先取前五行,然后再从尾部拿一行出来)
尾言
解决方法有多种,先汇集常用的,后续有将逐步更新,希望对你有所帮助!
如果你觉得还不错,赶快点赞收藏吧!