全部分类
移动开发与应用
WEB前端
架构与运维
程序设计
数据库
操作系统
热点技术
综合
awk之数据类型
5650阅读 0评论
2014-07-23
zooyo
分类:
LINUX
今天群里提出个问题, 跟大家分析一下:
echo
-
e '20
.
7
\
n25
.
5
\
n3'
|
awk '
{
a
[
$
0
]
}
END
{
for
(
i
in
a
)
{
if
(
i
>
20
)
print i
}
}
'
25
.
5
20
.
7
3
很明显, 3是不应该出现的, 在这里awk取出数组下标时当成了字符串来处理, 3比2大, 所以输出了3. 怎么当成数字来处理呢? 这里有个小技巧.
echo
-
e '20
.
7
\
n25
.
5
\
n3'
|
awk '
{
a
[
$
0
]
}
END
{
for
(
i
in
a
)
{
if
(
(
i
+
0
)
>
20
)
print i
}
}
'
25
.
5
20
.
7
把字符串加零, 做一次数学运算, awk就会自动转换成数字了.
上一篇:
awk之比较ASCII字符
下一篇:
awk之进制转换