在UNIX中使用head和tail命令从文件中提取项目

时间:2018-12-21 13:35:38

标签: unix ubuntu-14.04

我目前对Unix中的过滤器领域是陌生的,只是在UNIX中被介绍给基本命令。

我在ubuntu中有一个文件emp.lst,其中包含以下详细信息

cat emp.lst

2233|a.k.shukla|g.m.|sales|12/12/52|6000
9876|jai sharma|direcor|production|12/03/50|7000
5678|sumit chakraborty|d.g.m|marketing|19/04/43|6000
2365|barun sengupta|director|personnel|11/05/47|7800
5423|n.k. gupta|chairman|admin|30/08/56|5400
1006|chanchal singhvi|director|sales|03/09/38|6700
6213|karuna ganguly|g.m.|accounts|05/06/62|6300
1265|s.n. dasgupta|manager|sales|12/09/63|5600
4290|jayant choudhary|executive|production|07/09/50|6000
2476|anil aggarwal|manager|sales|01/05/59|5000
6521|lalit chowdary|director|marketing|26/09/45|8200
3212|shyam saksena|d.g.m.|accounts|12/12/55|6000
3564|sudhir aggarwal|executive|personnel|06/07/47|7500
2345|j.b.saxena|g.m.|marketing|12/03/45|8000
0110|v.k. agrawal|g.m.|marketing|31/12/40|9000

现在,我了解到head提取了该文件的顶部内容,而tail则用于访问底部的内容。

$head -3 emp.lst returns the first 3 rows in the file emp.lst

类似地,     $ tail -2 emp.lst返回文件中的最后2行

现在,如果我要将两者都提取出来,即从头开始的前3行和从尾部的最后2行?反正可以实现吗?

我还尝试了$ head -3 emp.lst; tail -2 emp.lst \这可以达到要求的结果,但是我认为仅用于在一行中键入多个命令 还有$ head -3 emp.lst |尾部-2不起作用。

1 个答案:

答案 0 :(得分:0)

您可以尝试

(head -3; tail -2) < emp.lst

如果您要验证行号,可以这样做

cat emp.lst | nl | (head -3; tail -2)