免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: shirley
打印 上一主题 下一主题

这个shell script 怎么写?  关闭 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2006-10-07 11:25 |只看该作者
换个思路。(K shell@AIX下通过)
for i in `awk -F "hello" '{print NF}' urfile`
do
let x=${x:-0}+$i-1
done
echo $x

论坛徽章:
0
42 [报告]
发表于 2006-11-29 17:36 |只看该作者
个人觉得这个问题首先要把问题的条件限定清楚,做一个较为完整的需求分析。然后我们再根据不同的情况分析。

论坛徽章:
0
43 [报告]
发表于 2006-12-03 00:27 |只看该作者
原帖由 mygod 于 2002-1-30 10:13 发表
[这个贴子最后由mygod在 2002/01/30 10:15am 编辑]

呵呵,偶又生一计:
sed 's/hello/\nhello\n/' test > test1
sed '/hello/' test1 > test2
length=`cat test2 | wc -l`


有错误,呵呵。我拿这个文件来试一下,想找出4的个数,你的脚本只找出了10个
Adams Mary     5346      11/4/63   28765
    Adams Mary     5346      11/4/63   28765

        Tom Jones      4423      5/12/66   543354
Sally Chang    1654      7/22/54   650000
Billy Black    1683      9/23/44   336500
foo fjdkl foo  slkdfj sldfj lsjf
moonlily 该用户已被删除
44 [报告]
发表于 2006-12-03 15:27 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
45 [报告]
发表于 2006-12-03 17:21 |只看该作者
原帖由 shirley 于 2002-1-29 10:55 发表
想写这么一个shell script, 找出一个文件比如test中出现hello的次数。
请大家帮帮忙,我还没想出来。


以bash3 的方法
#! /bin/bash
pat=$1
file=$2
[ ! -f "$file" ] || [ $# -ne 2 ] && exit
i=0
for howmany in $(< $file)
   do
      [[ "$howmany" =~ "\<$pat\>" ]] && (( i++ ))
done
echo "$pat:     $i times appeared"

论坛徽章:
0
46 [报告]
发表于 2006-12-04 11:40 |只看该作者
好贴.好多牛人思路很好,不过不少都没考虑一些特殊情况.

论坛徽章:
0
47 [报告]
发表于 2006-12-04 14:47 |只看该作者
# awk -F"hello" '{sum+=NF;sum-=1} END{print sum}' test

论坛徽章:
0
48 [报告]
发表于 2006-12-04 15:27 |只看该作者
楼上的思路挺牛
不过有空行的时候有点问题吧

论坛徽章:
0
49 [报告]
发表于 2006-12-04 15:32 |只看该作者
原帖由 antimatter 于 2006-11-29 17:36 发表
个人觉得这个问题首先要把问题的条件限定清楚,做一个较为完整的需求分析。然后我们再根据不同的情况分析。


就是,需求都不清楚怎么做,难道真的要做个通用的?

论坛徽章:
0
50 [报告]
发表于 2006-12-04 15:53 |只看该作者
原帖由 ora_length 于 2006-12-4 14:47 发表
# awk -F"hello" '{sum+=NF;sum-=1} END{print sum}' test


借用一下




  1. sed 's/hello/hello\n/g' test |sed -n -e '/hello/p'|awk -F"hello" '{sum+=NF;sum-=1} END{print sum}'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP