【发布时间】:2020-09-22 20:14:19
【问题描述】:
我正在尝试编写自己的脚本来告诉我是否使用了超过 500 MiB 的数据。
我正在使用 vnstat -d 获取有关数据使用的信息。
vnstat -dOutput here
输出应该是:
- 仅来自“总计列”
- 只有大于 500 的值。
我只想要“总计”列中的值。我的输出列出了所有列的数据。 最好从以下几点清楚:
#!/bin/bash
for i in `vnstat -d | grep -a [0-9] `; //get numerical values in i (-a tag as vnstat outputs in binary)
do
NUMBER=$(echo $i | grep -o '[5-9][0-9][0-9]'); //store values >500 in a var called NUMBER
echo $NUMBER;
done;
我是一个自学新手,所以请尽量不要抨击(双关语)我。
我从上述脚本收到的当前输出:
600
654
925
884
923
871
967
868
我想要的输出应该是:
654
923
967
【问题讨论】:
-
Please don't post images of text。这里的人认为这是邪恶的。
-
output_cmd | awk -F\| '{print $3}可以帮助您入门。阅读awk tutorial。祝你好运。 -
@Typedragon33 : 为什么要排除 600?毕竟,600 > 500!
-
@user1934428 条目 600 不是来自
total列。 -
正确,但在您的代码中,您执行
grep -o '[5-9][0-9][0-9]',它搜索行中的 所有 个数字,而不仅仅是标题为 total 的列中的数字i>.