LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: earth

关于cat和more

[复制链接]
发表于 2006-12-20 11:47:09 | 显示全部楼层
有没有高手把awk 和perl的方法也都写出来看看阿。
回复 支持 反对

使用道具 举报

发表于 2006-12-20 13:21:45 | 显示全部楼层
谢谢提醒!

单行输出可加限制符:
  1. cat draft -n | grep "^ *\<200\>"
复制代码
字段行输出可以分段配匹,例如2-256行:
  1. cat draft -n | egrep "^ *(\<[2-9]\>|\<[1-9][0-9]\>|\<1[0-9][0-9]\>|\<2[0-4][0-9]\>|\<25[0-6]\>)"
  2. 分段:2-9,10-99,100-199,200-249,250-256
复制代码
不过,这种方式实在太笨了,再大几位的数,语句就太长了!但,这显然是有规律的。

awk和sed一样容易:
  1. cat draft -n | awk '{if ($1>=2 && $1<=256) print}'
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-12-20 13:46:48 | 显示全部楼层
awk 'NR == 5' file

打印第五行

awk 'NR == 5, NR == 10' file

打印5-10行。
回复 支持 反对

使用道具 举报

发表于 2006-12-21 10:22:47 | 显示全部楼层
Post by liangandlin
有没有高手把awk 和perl的方法也都写出来看看阿。


Perl版
  1. huanlf@huanlf-desktop:~$ cat txt
  2. line1
  3. line2
  4. line3
  5. line4
  6. line5
  7. line6
  8. line7
  9. line8
  10. line9
  11. line10
  12. huanlf@huanlf-desktop:~$ perl -ne ' print if 3..6 ' txt
  13. line3
  14. line4
  15. line5
  16. line6
  17. huanlf@huanlf-desktop:~$
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表