Subscribed unsubscribe Subscribe Subscribe

16進数のテーブルを表示するワンライナーを考える まとめ

16進数のテーブルを表示するワンライナーを考える - すぎゃーんメモのまとめ。追記しまくって長くなったので整理する。
()内はperlコマンドも含めた文字数。

  • (52)最もオーソドックスにfor文を回して文字列連結する方法
perl -le'for$i(@a=(0..9,A..F)){print map"$i$_ ",@a}'
  • (52)for文を式修飾子で後置させる方法
perl -le'$i=$_,print map"$i$_ ",@!for@!=(0..9,A..F)'
perl -le'/./,print map"$&$_ ",@:for@:=(0..9,A..F)'
  • (50)配列の各要素に対しprintfで表示させる方法(from id:kazuhookuさん)
perl -e'printf"%02X%c",$_,$_+1&15?32:10for 0..255'
  • (45)printfのformatを一気に繋げる方法
perl -e'$s="%02X "x16;printf"$s\n"x16,0..255'
  • (46)上記のものから行末に空白がつかないようにしたもの(from shinhさん)
perl -e'@s=("%02X")x16;printf"@s\n"x16,0..255'
seq 0 255 | xargs printf "%02X\n" | xargs -n16
  • (46)Macにはseqコマンドが無いのでjotで代用
jot 256 0 | xargs printf "%02X\n" | xargs -n16
  • (41)上記からさらに削れるところを削ると
jot 256 0|xargs printf "%02X "|xargs -n16


やっぱりOneLinerならシェルコマンドが最強か…