LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1110|回复: 13

关于cat和more

[复制链接]
发表于 2006-12-19 00:12:06 | 显示全部楼层 |阅读模式
cat或more命令能不能指定输出一个文件的那一行,或者第几行到第几行。
用awk脚本可以实现,但是嫌麻烦。
发表于 2006-12-19 09:57:51 | 显示全部楼层
  1. $ more draft
  2. helooo  5
  3. heloo
  4. helo
  5. hel 2
  6. he
  7. h
  8. $ cat draft -n|grep "^ *2"
  9.      2  heloo
  10. $ cat draft -n|grep "^ *[2-5]"
  11.      2  heloo
  12.      3  helo
  13.      4  hel 2
  14.      5  he
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-19 11:43:14 | 显示全部楼层
这一招真巧妙,谢了
回复 支持 反对

使用道具 举报

发表于 2006-12-19 13:05:18 | 显示全部楼层
sed也是可以地!!!
回复 支持 反对

使用道具 举报

发表于 2006-12-19 13:26:01 | 显示全部楼层
Post by helo_aBiNg
  1. $ more draft
  2. helooo  5
  3. heloo
  4. helo
  5. hel 2
  6. he
  7. h
  8. $ cat draft -n|grep "^ *2"
  9.      2  heloo
  10. $ cat draft -n|grep "^ *[2-5]"
  11.      2  heloo
  12.      3  helo
  13.      4  hel 2
  14.      5  he
复制代码


2, 20, 200, 2000
1, 5
100, 101, 102, ..., 598, 599

:confused:
回复 支持 反对

使用道具 举报

发表于 2006-12-19 18:01:45 | 显示全部楼层
Post by seamonkey
2, 20, 200, 2000
1, 5
100, 101, 102, ..., 598, 599

:confused:



sed -e -n '2,5p' filename
打印2到5行


那个cat的方法应该不行。我想了好久也没想到怎样cat出来以后找到合适的正则表达式,我这个觉得可以,欢迎批评指正。
回复 支持 反对

使用道具 举报

发表于 2006-12-19 19:17:43 | 显示全部楼层
就是sed,awk;perl也可以,避免管道。
回复 支持 反对

使用道具 举报

发表于 2006-12-19 22:16:38 | 显示全部楼层
  1. ~$cat draft
  2. 2, 20, 200, 2000
  3. 1, 5
  4. 100, 101, 102, ..., 598, 599
  5. ~$cat draft -n | grep "^ *1"
  6.      1  2, 20, 200, 2000
  7. ~$cat draft -n | grep "^ *3"
  8.      3  100, 101, 102, ..., 598, 599
  9. ~$cat draft -n | grep "^ *[2-3]"
  10.      2  1, 5
  11.      3  100, 101, 102, ..., 598, 599
复制代码
sed显然是可以做到的;但这个如何不行呢?
回复 支持 反对

使用道具 举报

发表于 2006-12-19 22:25:06 | 显示全部楼层
faint,你显然误解我意思,我说599行的文件你试试看。
回复 支持 反对

使用道具 举报

发表于 2006-12-20 10:25:22 | 显示全部楼层
Post by helo_aBiNg
[code]$ more draft
helooo  5
heloo
helo
hel 2
he
h
$ cat draft -n|grep "^ *2"
     2  heloo


长文件的话,把20-29行,200-299行都打印出来了
回复 支持 反对

使用道具 举报

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

本版积分规则

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