业务背景:有一批ip数据来源,需要清洗出指定字段,但是来源得ip是数字类型的;
使用转换方法:
function int_to_ip
{
N=$1
declare -i H1="$N & 0x000000ff"
declare -i H2="($N & 0x0000ff00) >> 8"
declare -i L1="($N & 0x00ff0000) >> 16"
declare -i L2="($N & 0xff000000) >> 24"
echo "$L2.$L1.$H2.$H1"
}
但是传入参数必须是整型;
错误操作:
echo $line | awk '{print $2}' | int_to_ip
报异常:
./int_to_ip.sh: line 4: declare: '0' & 0x000000ff: syntax error: operand expected (error token is ""0" & 0x000000ff")
异常原因:
切出来的数据是带""的;
解决方法:
echo $line | awk '{print $2}'|sed 's/\"//g'