将awk输出转换为整数

时间:2014-11-28 10:54:34

标签: bash awk

我已经详细说明了一个收集shell输出的awk命令:

val=$(./cli.sh --file=scripts/monitor.sh | awk '/result/{print $3}')
echo $val

返回:

"75"

正如您所看到的,输出正确返回,但我需要将其转换为整数。是否有awk函数可以执行此操作?

2 个答案:

答案 0 :(得分:2)

您可以使用gsub()删除引号:

$ echo '"3"' | awk '{gsub("\"", "", $1); print}'
3

在你的情况下,这应该是:

val=$(./cli.sh ... | awk '/result/{gsub("\"", "", $3); print $3}')

测试

示例文件:

$ cat a
returns a b "75"
returns b c "33"
returns d e 7
hello z z 7

让我们运行它:

$ awk '/return/ {gsub("\"", "", $4); print $4}' a
75
33
7

答案 1 :(得分:0)

尝试:

val=$(./cli.sh --file=scripts/monitor.sh | awk '/result/{print substr($3, 2, length($2)-1)}')
echo $val