免费注册 查看新帖 |

Chinaunix

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

[文本处理] 这种排序如何用shell实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-24 18:47 |只看该作者 |倒序浏览
这种的需求.用shell实现
输入一个整数,按下面的方式排列,一直输出到那个整数
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
.....................

论坛徽章:
5
亥猪
日期:2013-10-15 13:41:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34申猴
日期:2013-10-28 10:55:45辰龙
日期:2013-10-31 13:29:29丑牛
日期:2014-02-14 11:25:54
2 [报告]
发表于 2012-10-24 19:12 |只看该作者

  1. read a;
  2. flag=0
  3. num=0;
  4. for((i=1;i<="${a}";i++))
  5. do
  6.     for((j=0;j<i;j++))
  7.     do  
  8.         ((num++))
  9.         echo -n "${num} "
  10.     done
  11.     echo -n -e "\n"
  12.     if [ "${num}" -ge "${a}" ]
  13.     then
  14.         break
  15.     fi
  16. done
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-10-24 19:56 |只看该作者
回复 2# lkk_super

我的意思是加入我输入12,数字就只产生到12这个地址.其他的13,14,15都不需要.谢谢你

   

论坛徽章:
0
4 [报告]
发表于 2012-10-24 19:59 |只看该作者
  1. j=1
  2. k=1
  3. for ((i=1;i<=$1;i++))
  4. do
  5.    echo -n $i " "
  6.    [[ $i == $k  ]] && j=$((j+1)) && k=$((k+j)) && echo
  7. done
复制代码

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
5 [报告]
发表于 2012-10-24 22:52 |只看该作者
本帖最后由 mcshell 于 2012-10-24 22:53 编辑

回复 1# ybb896


    这样?
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. print "Enter num:";
  5.         my   $num =0;
  6. chomp(my $line=<>);
  7. for(my $i=1;$i<=$line;$i++){
  8.         for(my $j=0;$j<$i;$j++){
  9.         if($num  eq $line){
  10.         last;
  11.         }else
  12.         {        $num++;
  13.         }
  14.         print   "$num ";
  15.         }
  16.      last if ($num eq $line);
  17.     print "\n" ;
  18. }

  19. F:\perl\cu>option.pl
  20. Enter num:16
  21. 1
  22. 2 3
  23. 4 5 6
  24. 7 8 9 10
  25. 11 12 13 14 15
  26. 16

复制代码

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
6 [报告]
发表于 2012-10-25 00:07 |只看该作者
本帖最后由 zhaopingzi 于 2012-10-25 00:09 编辑

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2012-10-25 09:45 |只看该作者
本帖最后由 blackold 于 2012-10-25 09:50 编辑

回复 1# ybb896

汗,CU有问题了,怎么贴子的格式老是不对啊。
n为要输入的数。
  1. for((i=1,j=1,n=50;i<=n;i++));do ((i==j*($j+1)/2)) && s=" $i"\n'&&((j++))||s=" $i";echo -n "$s";done
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2012-10-25 09:51 |只看该作者
n=50时的格式化输出:
1
2   3
4   5   6
7   8   9   10
11  12  13  14  15
16  17  18  19  20  21
22  23  24  25  26  27  28
29  30  31  32  33  34  35  36
37  38  39  40  41  42  43  44  45
46  47  48  49  50

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2012-10-25 09:53 |只看该作者
本帖最后由 blackold 于 2012-10-25 09:53 编辑

7楼和8楼合成一贴就成乱了。

n为要输入的数。
  1. for((i=1,j=1,n=50;i<=n;i++));do ((i==j*($j+1)/2)) && s=" $i"\n'&&((j++))||s=" $i";echo -n "$s";done
复制代码
n=50时的格式化输出:
1
2   3
4   5   6
7   8   9   10
11  12  13  14  15
16  17  18  19  20  21
22  23  24  25  26  27  28
29  30  31  32  33  34  35  36
37  38  39  40  41  42  43  44  45
46  47  48  49  50

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
10 [报告]
发表于 2012-10-25 09:54 |只看该作者
汗,刚才确实是乱了,现在又正常了。不是我水啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP