网友问题:

【潜水】object is c(76376610)  17:15:34

我想用shell把文件特定行打印出来,比如第一行,第十一行,第二十一行。应该怎么写语句
【潜水】object is c(763766100)  17:17:51
请老师赐教,多谢多谢 

解答记录:

【活跃】北京|老男孩(31333741)  17:17:55
做好数字序列 sed取即可
【传说】北京-cache(149260006)  17:17:58
这不难啊

【活跃】北京|老男孩(31333741)  17:18:06
一句脚本 就可以了
很简单
【吐槽】*^_^*该起床嘞!♂ (47561934)  17:20:17
sed -n '1,11,21p' filename

正确答案:

【活跃】北京|老男孩(31333741)  17:20:45
spacer.gif
[root@linux-node1 ~]# seq 50 >oldboy.txt                         
[root@linux-node1 ~]# for n in `seq 1 10 50`;do sed -n "$n"p oldboy.txt;done
1
11
21
31
41

补充:更简单的解决办法见文尾部

【吐槽】*^_^*该起床嘞!♂ (47561934)  17:22:21
spacer.gif还是老男孩儿考虑的深远啊 给力 

【潜水】object is c(763766100)  17:22:31
明白了,seq命令不常用。spacer.gif
多谢老师

【活跃】北京|老男孩(31333741)  17:23:02
正好课间休息 
周末 都是最忙的时候。 大家记得 思想 比技术本身重要
【活跃】北京|老男孩(31333741)  17:24:42
【吐槽】*^_^*该起床嘞!♂ (475619344)  17:20:17
你的方法可行么??

【吐槽】最后的守望者(54006018)  17:25:03
显然不可行的啊

【活跃】北京|老男孩(31333741)  17:26:06
也许有更好的方法,大家多动脑筋吧,我上课了。

【吐槽】*^_^*该起床嘞!♂ (47561934)  17:32:57
哦! 不好意思写错了

【活跃】北京|老男孩(31333741)  17:41:51
取行的命令很多,awk也可

【话唠】稻草人(70650133)  17:43:25
长知识了

 ==================================

其实还有更多的解决方法

法2:

sed -n '1~10p' oldboy.txt

~ 表示步长,即数字间隔。

法3:

[root@oldboy scripts]# cat test04.sh

for ((i=1;i<52;i=i+10))

do

   sed -n "${i}p" /etc/services

done

 法4:补充 来自网友aaa0 赞一个

 cat -n /etc/services|awk '{if(NR%10==1)print $0}'

欢迎大家评论。网友QQ信息已处理