ふと、コンソール上で2進数とかExcelの列の10進数対応一覧みたいなのを一発で出力できないかなと思ったので、やってみることにした。 2進数については、bcコマンドを使うかどうかで結構変わってくる。 bcコマンドを使わない場合だと、ブレース展開を使用するので明示的に数字を指定するのが難しいようだ。

seq -f "obase=2;%g" 0 255|bc|awk '{print (NR-1),$1}'
eval echo $(echo '{,{0..1}}'{,,,,} '{0..1}'|tr -d ' ')|tr ' ' '\n'|awk '$1!~/^0{2,}$/&&!a[$1]++'|awk '{print (NR-1),$1}'
test@ubuntu:~$ seq -f "obase=2;%g" 0 255|bc|awk '{print (NR-1),$1}'|head -20
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
17 10001
18 10010
19 10011
test@ubuntu:~$ eval echo $(echo '{,{0..1}}'{,,,,} '{0..1}'|tr -d ' ')|tr ' ' '\n'|awk '$1!~/^0{2,}$/&&!a[$1]++'|awk '{print (NR-1),$1}' | head -20
0 0
1 1
2 01
3 10
4 11
5 001
6 010
7 011
8 100
9 101
10 110
11 111
12 0001
13 0010
14 0011
15 0100
16 0101
17 0110
18 0111
19 1000

次に、Excelの列名と数字の対応一覧。

eval echo $(echo '{,{a..z}}'{,} '{a..z}'|tr -d ' ')|xargs -n1|awk '!a[$1]++'
test@ubuntu:~$ eval echo $(echo '{,{a..z}}'{,} '{a..z}'|tr -d ' ')|xargs -n1|awk '!a[$1]++' | cat -n | head -30
     1  a
     2  b
     3  c
     4  d
     5  e
     6  f
     7  g
     8  h
     9  i
    10  j
    11  k
    12  l
    13  m
    14  n
    15  o
    16  p
    17  q
    18  r
    19  s
    20  t
    21  u
    22  v
    23  w
    24  x
    25  y
    26  z
    27  aa
    28  ab
    29  ac
    30  ad

役に立つ時が来るのか?という気がしなくもないが、とりあえずこんな感じでやればExcelのネーミングルールでの列名を一覧にして出力できる。