Chinaunix

标题: 这个shell错在哪, [打印本页]

作者: wpd0508    时间: 2014-06-21 13:03
标题: 这个shell错在哪,
#!/bin/bash
while read line
do
awk -F ',+[ ].'  '{for(i=0;i<NF;i++){
a=a" "length($i);
n+=length($i);
}
print a,n/NR;a=n=0}'| <test1
done

作者: 关阴月飞    时间: 2014-06-21 13:29
本帖最后由 关阴月飞 于 2014-06-21 13:32 编辑

这是想干嘛?
作者: Herowinter    时间: 2014-06-21 13:36
回复 1# wpd0508
这里没看懂。
  1. print a,n/NR;a=n=0}'| <test1
复制代码

作者: Herowinter    时间: 2014-06-21 13:37
回复 2# 关阴月飞

大神昨晚又赢钱了,我基本破产了。。。
   
作者: wpd0508    时间: 2014-06-21 13:39
我好像懂了点,首先不需要用到while.
回复 3# Herowinter


   
作者: Herowinter    时间: 2014-06-21 13:43
回复 7# wpd0508
管道好像也不需要,这样就行了。
  1. awk -F'..'  '...'  urfile
复制代码

作者: wpd0508    时间: 2014-06-21 13:47
还有就是我想将,空格。等所有符号都定义为分割符 怎么写-F 然后呢
作者: 关阴月飞    时间: 2014-06-21 16:08
回复 6# Herowinter


    赢毛线,输惨了,楼主这个代码怎么感觉是我在另一个贴子里写的呢???
作者: Herowinter    时间: 2014-06-21 16:16
回复 10# 关阴月飞
估计他拿过来,改了一下,现在不行了,你帮他一下吧,
我看过他需求,只完成第一步好像不难。


对一个纯文本,其中的每一句话,你首先需要按顺序地得到这句话中每一个单词的字母数,比如“ In statistics, a power lar is a functional relationship between two quantities, where one quantity varies as a power of another" 这句话中,按顺序得到的单词的字母数序列是“ 2 10 1 5 3 2 1 10 12 7 3 10 5 3 8 5 3 8 6 2 1 5 2 7.
       这文件中的每一句话做一次这样的分析后,你会得到一长串的字数(x1,x2, x3, ... xn), 每一个数字代表一个单词的字母数(n 为文件中单词数)。接下去对这串字数进行进行求平均,得到  xbar.  将原来的数组与xbar做差,得以 ( X1, X2, X3,X4,X5 .... Xn),  其中Xi=xi-xbar.然后对数组[ Xi ] 做累加 得到 [ Y1, Y2, Y3,  ... Yn],  其中 Y1=X1, Y2=X1+X2, Y3=X1+X2+X3, ..., Yi = X1+X2+ ... + Xi.
   
作者: 银风冷月    时间: 2014-06-21 17:49
  1. #!/bin/bash
  2. while read line
  3. do
  4. awk -F ',+[ ].'  '{for(i=0;i<NF;i++){
  5. a=a" "length($i);
  6. n+=length($i);
  7. }
  8. print a,n/NR;a=n=0}' $line
  9. done <test1
复制代码
你写的应该是这样,要么就不要用while read 直接awk语句后跟文件名
作者: LikeLx    时间: 2014-06-23 12:30
回复 6# Herowinter
一个世界杯,都回到解放前了
   
作者: Herowinter    时间: 2014-06-23 13:02
回复 13# LikeLx
为谁辛苦为谁忙啊,
白手起家的感觉真特别。

   
作者: 用户名注册后不能更改    时间: 2014-06-23 15:09
回复 13# LikeLx

新人你好
作者: expert1    时间: 2014-06-23 16:04

看下我多少分先。




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