Shell中如何获取文件指定行

比如要获取/etc/passwd文件, 要获取其第6-10行,并显示每行的行号。总结一下,方法有很多,行号的显示可以借助cat -n参数,或者sed =来显示。 小结一下,可以有以下方法来获取。 

# 1). -n显示行号,tail -n +6显示第6行之后的行,结合head -n 5,获取前面5行,刚好6-10
$ cat -n /etc/passwd | tail -n +6 | head -n 5   

# 2). 先用head -n 10来获取前10行,再结合tail -n 5获取后面5行,刚好也是6-10行
$ cat -n /etc/passwd | head -n 10 | tail -n 5  

# 3). cat -n来显示行号,再用awk中$1来判断行号范围
$ cat -n /etc/passwd | awk '($1 > 1 && $1 < 11){print $0}' 

# 4). 借助于6,10p来打印第6行到第10行
$ cat -n /etc/passwd | sed -n '6,10p'

# 5). =打印行号,使用N;来获取下一行,再用\t来替换换行符,最后使用6,10p来获取
$ sed = /etc/passwd | sed 'N;s/\n/\t/' | sed -n '6,10p'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值