判断一组数字按连续数字分段并输出结果

[www@shnnejudgenum]$ cat judgenum.sh 
#!/bin/bash
#by Jean
#判断一组数字按连续数字分段并输出结果
#原理:用for循环从1开始过滤,按顺序过滤一个就不换行打印当前数字和空格,如果过滤不到,就换行打印空,直到再次过滤到继续打印
#然后排除空行,用awk取第一列和最后一列,这样就可以得到一组数字的按顺序分段了

Dir=$(cd `dirname $0`;pwd)
DFile=$Dir/majia.txt
Result=$Dir/result.txt
TempFile=$Dir/tmpfile.txt
[ -f $Result ] && rm -f $Result
[ -f $TempFile ] && rm -f $TempFile

Maxnum=`sort -rn $DFile | head -1`

for i in `seq 1 $Maxnum`
do
        flag=`grep -w $i $DFile|wc -l`
        if [ $flag -eq 1 ];then
                echo -ne "$i " >>$TempFile
        else
                echo '' >>$TempFile
        fi
done

grep -v '^$' $TempFile | awk '{print $1"-"$NF}' > $Result


分享到:
关键词:Shell

网友留言(0 条)

发表评论