Chinaunix

标题: 初学awk的不明问题 [打印本页]

作者: sindney    时间: 2004-04-09 11:08
标题: 初学awk的不明问题
各位大侠好!
请问:
 $awk '/[Ss]un/,/[Mm]oon/ {print}' myfile
它将显示第一个匹配Sun或sun的行与第一个匹配Moon或moon的行之间的行,并显示到标准输出上。

如果要加行号:awk ‘/[Ss]un/,[Mm]oon/ {print ++n”\t”$0}’ myfile
然而这样运行的结果是:1 ......2............3..........  ..... 而不能分记录显示,那怎样才能按如下结果输出呢?如下:
1 ...................
2 ...................
.
.
而且同时要实现每一记录的前面所显示的行号能控制位数的多少,如:2位是:01 02 03..... 三位是:001 002 003 ....................

为什么这样写不行呢:
awk ‘/[Ss]un/,[Mm]oon/ {print ++n”%03d%s\n”,NR}’ myfile

盼各路大侠指点
作者: nkoldbug    时间: 2004-04-09 14:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: c1l2d3    时间: 2004-04-09 14:32
标题: 初学awk的不明问题
笨办法:
  1. cat myfile|awk '/[Ss]un/,/[Mm]oon/ {printf "%.2f %s\n",NR/100,$0}'|sed 's/\([0-9]\)\./\1/g'
复制代码


001 sun.......
002 asfasdf...
.........
..........
023 moon......
作者: sindney    时间: 2004-04-09 15:12
标题: 初学awk的不明问题
原帖由 "c1l2d3" 发表:

001 sun.......
002 asfasdf...
.........
..........
023 moon......

c1l2d3大侠,运行结果完全正确,虽然结果是出来了,可我却看不太懂的,因为修为真的有点太浅   先保留,说不准住一段时间学习后就能看懂的

谢啦
作者: sindney    时间: 2004-04-09 15:14
标题: 初学awk的不明问题
如果谁有更好的办法,当然要比c1l2d3现在的办法更好的,欢迎贴出来,好好学习,呵呵
作者: sindney    时间: 2004-04-09 15:21
标题: 初学awk的不明问题
c1l2d3大侠,下面这条语句:
$awk '{printf"%03d%s\n",NR,$1}' myfile不也是将myfile文的记录加行号显列出来吗?? 
它与你写的:{printf "%.2f%s\n",NR/100,$0}这句有什么曲别吗??搞不懂!
作者: forest077    时间: 2004-04-09 15:24
标题: 初学awk的不明问题

  1. awk '/[Ss]un/,/[Mm]oon/ {printf "%03d %s\n",NR,$0} myfile
复制代码

cld大侠的有点多此一举。
作者: c1l2d3    时间: 2004-04-09 15:31
标题: 初学awk的不明问题
[quote]原帖由 "forest077"]cld大侠的有点多此一举。[/quote 发表:


是啊!问题被我搞复杂了,绕了个大弯.楼主不用研究我的代码了,容易误导问题.呵呵~
作者: sindney    时间: 2004-04-09 15:33
标题: 初学awk的不明问题
forest077大侠,不行呀,你写的这个代码运行后,机进入<号后没有任何反应,不知为何呀??
作者: c1l2d3    时间: 2004-04-09 15:36
标题: 初学awk的不明问题
[quote]原帖由 "sindney"]forest077大侠,不行呀,你写的这个代码运行后,机进入<号后没有任何反应,不知为何呀??[/quote 发表:


不会吧!他的代码少了一个引号,加上就成了
作者: sindney    时间: 2004-04-09 15:41
标题: 初学awk的不明问题
汗ing   
作者: forest077    时间: 2004-04-09 15:43
标题: 初学awk的不明问题
?!果然少了一个单引号,cld的眼睛真尖,是我从屏幕上copy的时候漏掉了,因为我的测试文件不叫myfile,所以只copy到前面,呵呵呵。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2