この記事は約2分44秒で読むことができます。

グルーピングするシェルスクリプトを作った話

まえがき

もうちょい簡単できそうだけど、こんなのを思いついてしまったぜ。

実行例

コード表示

[root@centos vx]# cat grp.sh
#!/bin/bash
grp(){
  RN=$1
  GRP=$2
  while read line;do
     echo ${line} | sed -e s/GRP/${GRP}/ | bash;
  done < <(seq ${RN} | xargs -I@ bash -c 'echo echo $\(\(@%GRP\)\)') | sort
}

grp $1 $2
[root@centos vx]# ll grp.sh
-rwxr-xr-x. 1 root root 195  6月  2 14:33 grp.sh
[root@centos vx]# ./grp.sh 12 3
0
0
0
0
1
1
1
1
2
2
2
2
[root@centos vx]# ./grp.sh 12 4
0
0
0
1
1
1
2
2
2
3
3
3
[root@centos vx]# ./grp.sh 12 2
0
0
0
0
0
0
1
1
1
1
1
1
[root@centos vx]# ./grp.sh 12 3 | nl
     1	0
     2	0
     3	0
     4	0
     5	1
     6	1
     7	1
     8	1
     9	2
    10	2
    11	2
    12	2
[root@centos vx]# ./grp.sh 12 4 | nl
     1	0
     2	0
     3	0
     4	1
     5	1
     6	1
     7	2
     8	2
     9	2
    10	3
    11	3
    12	3
[root@centos vx]# ./grp.sh 12 2 | nl
     1	0
     2	0
     3	0
     4	0
     5	0
     6	0
     7	1
     8	1
     9	1
    10	1
    11	1
    12	1

あとがき

あんま大したことないけど、fin。

Leave a Reply

Your email address will not be published. Required fields are marked *