printf -- format and print date 通過printf的選項格式化輸出數據
基本英文學習
二進制:binanry number
八進制:otcal number
十進制:decimal number
十六進制: hexadecimal number
1、基本的打印輸出(默認不換行\n換行)
# printf "hello,world" hello,world #printf "hello,world\n" hello,world
2、進制的轉換
%x 十六進制
%d 十進制
%o 八進制
十進制轉16進制
# printf "%x\n" 27 1b # printf "%x\n" 19713 查到佔用較高CPU的線程號轉換爲16進制,以便於jstack查看 4d01
16進制轉十進制
# printf "%d\n" 0x1b 27 # printf "%d\n" 0x4d01 19713
(注意 轉換進制可以使用bc命令 如裝換成爲2進制) ibase輸入的進制;obase輸出的進制)
10進制轉爲2進制
# echo 'obase=2;10'|bc 1010
帶變量的處理常用在shell腳本中
# a=10 # echo "obase=2;$a" |bc 1010
2進制轉換10進制
# echo 'ibase=2;111'|bc 7
綜合的高級用法:
# cat file.txt 100 200 300 # awk‘{print "ibase=10;obase=2;" $1}‘file.txt |bc |xargs printf "%08d\n" 01100100 11001000 100101100