shell指令碼 把十進位資料轉換成十六進位

來源:互聯網
上載者:User

    本文介紹了一種shell指令碼,用來處理十進位數轉換成十六進位的方法。現有兩個資料檔案i0.txt和q0.txt,資料如下:

i0.txt                     q0.txt              

  935                    3297

  385                    6964

 -280                 12697

1768                   8404

7377                    -852

 

 

#!bin/bash

#因為有負數,所以先轉換成16位十六進位數 %16x

cat  i.txt  |  \

awk  '{printf  "%16x  \n",$1}'  > i00.txt

cat  q.txt  |  \

awk  '{printf  "%16x  \n",$1}'  > q00.txt

 

#我需要的是i0.txt和q0.txt十進位數對應的4位十六進位數,取有效4位

cut  -c  13-16  i00.txt  >  i_mem.txt

cut  -c  13-16  q00.txt  > q_mem.txt

 

#不足4位的,前面補0

cat  i_mem.txt  |  \

awk  '{printf  "%04s  \n",$1}'  >  i_mem_00.txt

cat  q_mem.txt  |  \

awk  '{printf  "%04s  \n",$1}'  >  q_mem_00.txt

 

#將兩個檔案(各4位)組成8位十六進位數

paste  -d  ":"  i_mem_00.txt  q_mem_00.txt  > rfiu_mem_00.txt

sed  's/  ://g'  rfiu_mem_00.txt  >  rfiu_mem.txt

 

#中間資料如下:

       i00.txt                         q00.txt

           3a7                             ce1

           181                          1b34

ffffffffffffa1f                           3199

           6e8                           20d4

         1cdc                 fffffffffffffcac

 

     i_mem.txt                 q_mem.txt

           3a7                             ce1

           181                          1b34

           fa1f                           3199

           6e8                           20d4

         1cdc                             fcac

 

 i_mem_00.txt               q_mem_00.txt

          03a7                            0ce1

           0181                          1b34

           fa1f                             3199

           06e8                           20d4

         1cdc                              fcac

 

        rfiu_mem.txt

           03a70ce1

           01811b34

           fa1f 3199

           06e820d4

          1cdcfcac

     註:可能這個方法不是最精簡的,如有更好的方法請高手指點一二,不勝感激。  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.