我通常在我的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环境仍然很陌生,所以我对你的看法可能看起来异常漫长。任何建议将不胜感激。
工程很棒。万分感谢! –