本帖最后由 haokoo 于 2014-02-27 15:58 編輯
RT 真的三言兩語(yǔ)說(shuō)不清,直接舉個(gè)栗子:
file:- li,1038545726,manager,local account,,,cert,no,,
- ho,1029807038,manager,local account,,,cert,no,,
- cu,1073895116,manager,local account,,,cert,no,,
- lu,1166270565,manager,local account,,,cert,no,,
復(fù)制代碼 將第二列的數(shù)值轉(zhuǎn)化為16進(jìn)制,并且進(jìn)行排序,即:1038545726 --> 3DE6F33E --> 3EF3E63D
確認(rèn)第二列的數(shù)值轉(zhuǎn)化為16進(jìn)制之后永遠(yuǎn)是固定8個(gè)字符的長(zhǎng)度。
輸出結(jié)果:- li,3EF3E63D,manager,local account,,,cert,no,,
- ho,BE9B613D,manager,local account,,,cert,no,,
- cu,CC560240,manager,local account,,,cert,no,,
- lu,65E08345,manager,local account,,,cert,no,,
復(fù)制代碼 我寫(xiě)了很復(fù)雜的腳本,請(qǐng)各位幫忙簡(jiǎn)化簡(jiǎn)化,謝謝。- awk -F "," -v OFS="," '{cmd="echo \042ibase=10;obase=16;"$2"\042 | bc";cmd | getline n;cmd="echo "n" | sed -r \047s/(..)(..)(..)(..)/\\4\\3\\2\\1/g\047" ;cmd|getline n2;$2=n2;print $0}' file
復(fù)制代碼 |