网友问题:
【潜水】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:17sed -n '1,11,21p' filename正确答案:【活跃】北京|老男孩(31333741) 17:20:45[root@linux-node1 ~]# seq 50 >oldboy.txt [root@linux-node1 ~]# for n in `seq 1 10 50`;do sed -n "$n"p oldboy.txt;done111213141
补充:更简单的解决办法见文尾部
【吐槽】*^_^*该起床嘞!♂ (47561934) 17:22:21还是老男孩儿考虑的深远啊 给力 【潜水】object is c(763766100) 17:22:31明白了,seq命令不常用。多谢老师 【活跃】北京|老男孩(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信息已处理