我通常在我的mac上編寫腳本,然後一旦準備就緒,我將它們sftp到我的測試框中。我在這裏面臨的問題是我有一個數據流,它是一個十六進制格式的I.P地址。我使用sed和awk混合來解析它並將其轉換爲更易讀的格式。awk版本問題 - 將十六進制轉換爲十進制
$echo $content12
cb5c860100000000000000000000000000
[[email protected]~] echo $content12 |
sed -e 's/../&./g' -e 's/.$//' | sed 's/[0-9a-z][0-9a-z]/0x&/g' |
awk -F"." '{for (i=1;i<NF;i++) printf ("%d\n", $i)}' |
awk '{if (NR<5) printf $0; printf "."}' | sed 's/\.\.*$//'
203.92.134.1
當我將這個移植到我的測試框在工作時,腳本沒有按預期工作。
$echo $content12 |
sed -e 's/../&./g' -e 's/.$//' | sed 's/[0-9a-z][0-9a-z]/0x&/g' |
awk -F"." '{for (i=1;i<NF;i++) printf ("%d\n", $i)}' |
awk '{if (NR<5) printf $0; printf "."}' | sed 's/\.\.*$//'
0.0.0.0
版本的awk和UNAME我的Mac上 -
[[email protected]~] awk --version
awk version 20070501
[[email protected]~] uname -a
Darwin MBP-13.local 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011;
root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
版本的awk和UNAME在我的測試箱在工作 -
$ awk --version
GNU Awk 3.1.5
Copyright (C) 1989, 1991-2005 Free Software Foundation
$uname -a
Linux 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010
x86_64 x86_64 x86_64 GNU/Linux
這是不是我可以稍作修改。我對UNIX環境仍然很陌生,所以我對你的看法可能看起來異常漫長。任何建議將不勝感激。
工程很棒。萬分感謝! –