免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: swysn

请教。。。。。 [复制链接]

论坛徽章:
0
发表于 2003-03-13 07:55 |显示全部楼层

请教。。。。。

原帖由 "nmgzw" 发表:
好像可以这么做:
#! /bin/bash
i=`awk '/%s/{count++} END{print count}` $1
#这行写的对么???
`awk 'BEGIN{RS="";FS="%s"}{split($0,filen,'%s'}' $1`

我想这么做,把数组里的内容打到不同的文件,可我不知道怎么写:
for(j=1;j<=$i;j++)
     print  filen[$j]>file$j


谁能告诉我怎么写,3x!·
...

你的方向大体上应该是对的吧,但是好象没有正确输出。第二行那样子 split 不行吧,split 是分字串,它这个 %s 是纵向的,分不了。

这样吧

  1. #!/bin/sh

  2. # 或 awk、gawk,因人而宜
  3. nawk '{
  4.    if ( $0 == "%s" ) {
  5.        count++
  6.        next
  7.    }
  8.    output = count ".txt"
  9.    print >> output
  10. }'  filename
复制代码


中间部分别生成 1.txt, 2.txt, 3.txt... 等文件

论坛徽章:
0
发表于 2003-03-13 08:24 |显示全部楼层

请教。。。。。

红袖姐,好聪明!

论坛徽章:
0
发表于 2003-03-13 08:45 |显示全部楼层

请教。。。。。

[quote]原帖由 "nmgzw"]红袖姐,好聪明![/quote 发表:


过奖了,:)

小鬼你真早啊~~~

(我得休息喽……)

论坛徽章:
0
发表于 2003-03-13 09:13 |显示全部楼层

请教。。。。。

红袖添香
就是高!
谢谢

论坛徽章:
0
发表于 2003-03-13 09:42 |显示全部楼层

请教。。。。。

啊,红袖姐也是夜猫子啊!
难道红袖姐真的在欧洲工作?!

论坛徽章:
0
发表于 2003-03-13 10:38 |显示全部楼层

请教。。。。。

红袖姐,请问我在sco unix 5.05下执行怎么不行啊?还有
#!/bin/sh

# 或 awk、gawk,因人而宜
nawk '{
   if ( $0 == "%s" ) {
       count++
       next
   }
   output = count ".txt"
   print >> output
}'  filename

其中的next的功能是什么?谢谢了

论坛徽章:
0
发表于 2003-03-13 10:38 |显示全部楼层

请教。。。。。

原帖由 "nmgzw" 发表:
啊,红袖姐也是夜猫子啊!
难道红袖姐真的在欧洲工作?!


没看见红袖拿的那面小镜子嘛!那可是欧洲中世纪的魔镜.

你要是调皮,她拿着镜子对你这么一照,呵呵,你就变成小猪猪喽.

论坛徽章:
0
发表于 2003-03-14 00:10 |显示全部楼层

请教。。。。。

[quote]原帖由 "bzzyg"]我在sco unix 5.05下执行怎么不行啊?还有[/quote 发表:


那可能是因为你从网页上拷贝的源文件中含有空格,造成判断句不满足条件。这段程序只是匹配了 %s 为分割符的,而你的 %s 后面可能还有空格什么的。

论坛徽章:
0
发表于 2003-03-14 00:18 |显示全部楼层

请教。。。。。

[quote]原帖由 "bzzyg"]其中的next的功能是什么?谢谢了[/quote 发表:



next 意思: 在 awk 处理过程是逐行扫描的源文本文件,next 表示跳过本行,直接进入下一行

在这个程序中就是说,一旦读到 %s 的时候,count 自增 1,然后就直接跳转读下一行,而不是顺序执行接下来的对本行的动作
output = count ".txt"
print >> output
这两句

论坛徽章:
0
发表于 2003-03-14 10:39 |显示全部楼层

请教。。。。。

红袖姐:
我按照你所说的,我测试成功了,谢谢你!!谢谢你这么热心.我还有一点不明白的是:

nawk '{
if ( $0 == "%s" ) {
count++
next
}
output = count ".txt"
print >> output
}' filename
中 count".txt"  能不能写成 ${count}".txt"
print >> output  能不能写成  print $0 >> $output
为什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP