免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2060 | 回复: 5
打印 上一主题 下一主题

想写一个检查一组数字是否连续的脚本,有没有现成的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-05 13:49 |只看该作者 |倒序浏览
我想写一个脚本,
它从文件中读取第n列,
然后检查第n列的值是否连续,比如30,31,32等等。
文件名和n都是可变的参数,
我写的比较麻烦,不知道有没有简单的方法。
----------------------------
#!/bin/sh
#set -x

col=1
file=temp.dat
tmpFile="ttmmpp.dat"
prefix=""

if [ $# -ge 2 ]
then
file="$1"
col="$2"
        if [ $# -eq 3 ]
        then
        prefix="$3"
        fi
else
print "usage: chck.sh filename colnum [prefix]"
return
fi

sh -c "more $file|awk '{print \$$col}'">$tmpFile
#content=`sh -c "more temp.dat|awk '{print \$$col}'"`

if [ ! $? -eq 0 ]
then
print "perhaps parameter value is wrong!"   
return
fi

content=`more $tmpFile|sed "s/$prefix//g"|sed "s/\([0-9]*\)[^0-9]*/\1/g`
rm $tmpFile
j="NA"
i=0
for i in $content
do
if [ ! "$j" = "NA" ]
then
then
expr $i + 1 > /dev/null 2>&1
if [ ! $? -eq 0 ]
then
print $i "is not a number!"
return
fi
        if [ ! $i -eq $j+1 ]
        then
                print "noj in filefile is not continuous"
        return
        fi
fi
j=$i
done
if [ $? -eq 0 ]
then
print "$file is continuous!"
fi

论坛徽章:
0
2 [报告]
发表于 2003-03-05 14:45 |只看该作者

想写一个检查一组数字是否连续的脚本,有没有现成的

col=1
aaa=`echo "awk '{print \$""$col}' $file"|sh`
echo $aaa
echo $aaa|awk 'BEGIN {aa=$1} {for(i=1;i<NF;i++) {if($(i+1)!=$i+1) {printf("error
";exit}} print "ok"}'

不知道何不和用

论坛徽章:
0
3 [报告]
发表于 2003-03-05 14:46 |只看该作者

想写一个检查一组数字是否连续的脚本,有没有现成的

col=1
aaa=`echo "awk '{print \$""$col}' $file"|sh`
echo $aaa
echo $aaa|awk '{for(i=1;i<NF;i++) {if($(i+1)!=$i+1) {printf("error
";exit}} print "ok"}'

论坛徽章:
0
4 [报告]
发表于 2003-03-05 15:22 |只看该作者

想写一个检查一组数字是否连续的脚本,有没有现成的

没有仔细看完,不好意思!

这个短一些:

  1. #!/usr/bin/ksh
  2. col=1
  3. filename="./data"
  4. diff="hello"
  5. cut -f$col $filename | cat -n  | while read key1 key2
  6. do
  7.     [ $diff = "hello" ] && { diff=`expr $key1 - $key2` ;}
  8.     if [ $diff != `expr $key1 - $key2` ]
  9.     then
  10.         echo "$key1:Error!"
  11.     else
  12.         echo "$key1:Ok!"
  13.     fi
  14. done
复制代码

论坛徽章:
0
5 [报告]
发表于 2003-03-05 15:26 |只看该作者

想写一个检查一组数字是否连续的脚本,有没有现成的

原帖由 "nkliyong" 发表:
col=1
aaa=`echo "awk '{print \$""$col}' $file"|sh`
echo $aaa
echo $aaa|awk '{for(i=1;i<NF;i++) {if($(i+1)!=$i+1) {printf("error
";exit}} print "ok"}'


刚才没有看到你的,你的比我的还短!

论坛徽章:
0
6 [报告]
发表于 2003-03-05 15:51 |只看该作者

想写一个检查一组数字是否连续的脚本,有没有现成的

原帖由 "biansj" 发表:


刚才没有看到你的,你的比我的还短!


短的有时不一定好.     
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP