使用 2 个切割变量进行除法
Division by using 2 cut variables
我有以下代码:
#!/bin/bash
pontos=$(cat condutores.txt | cut -d ":" -f 10)
nviagens=$(cat condutores.txt | cut -d ":" -f 9)
divisao=$((pontos / nviagens))
echo $divisao
我想将每行的第 10 列与 condutores.txt
的第 9 列分开。将其保存在变量中并检查数字是否小于 5 。但是,该部门无法正常工作。
您的部门无法计算的原因是 cut
为您提供了完整的专栏。所以如果 condutores.txt
有很多行,你会得到很多值,所有值都用 \n
分隔。这不是一个真正的数字。
你可以试试别的东西...
awk '{print /}' FS=":" condutores.txt
您可以使用 awk 在一行中完成此操作!假设我有示例数据(我用它来模仿你的):
1 15 18
2 17 6
3 14 98
4 17 25
5 9 3
这是使用 awk 将第 3 列除以第 2 列的方法:
awk '{print /}' example_file.txt
打印到标准输出:
1.2
0.352941
7
1.47059
0.333333
现在说我只想要那些小于 1 的值:
awk '{if (/ < 1) print [=13=]}' awk_tester.txt
returns 完整行数:
2 17 6
5 9 3
现在如果我们想要实际值:
awk '{if (/ < 1) print /}' awk_tester.txt
returns:
0.352941
0.333333
如果您的字段分隔符是“:”,只需将其添加到每个 awk 命令的开头:
-F ':'
像这样:
awk -F ':' '{if (/ < 1) print /}' awk_tester.txt
我有以下代码:
#!/bin/bash
pontos=$(cat condutores.txt | cut -d ":" -f 10)
nviagens=$(cat condutores.txt | cut -d ":" -f 9)
divisao=$((pontos / nviagens))
echo $divisao
我想将每行的第 10 列与 condutores.txt
的第 9 列分开。将其保存在变量中并检查数字是否小于 5 。但是,该部门无法正常工作。
您的部门无法计算的原因是 cut
为您提供了完整的专栏。所以如果 condutores.txt
有很多行,你会得到很多值,所有值都用 \n
分隔。这不是一个真正的数字。
你可以试试别的东西...
awk '{print /}' FS=":" condutores.txt
您可以使用 awk 在一行中完成此操作!假设我有示例数据(我用它来模仿你的):
1 15 18
2 17 6
3 14 98
4 17 25
5 9 3
这是使用 awk 将第 3 列除以第 2 列的方法:
awk '{print /}' example_file.txt
打印到标准输出:
1.2
0.352941
7
1.47059
0.333333
现在说我只想要那些小于 1 的值:
awk '{if (/ < 1) print [=13=]}' awk_tester.txt
returns 完整行数:
2 17 6
5 9 3
现在如果我们想要实际值:
awk '{if (/ < 1) print /}' awk_tester.txt
returns:
0.352941
0.333333
如果您的字段分隔符是“:”,只需将其添加到每个 awk 命令的开头:
-F ':'
像这样:
awk -F ':' '{if (/ < 1) print /}' awk_tester.txt