在文件末尾添加行-使用for loop-linux脚本
我有文件节点_avg.in。此文件每5分钟更改一次值,因此节点应计算可用值。好心帮忙在文件末尾添加行-使用for loop-linux脚本,linux,bash,shell,for-loop,awk,Linux,Bash,Shell,For Loop,Awk,我有文件节点_avg.in。此文件每5分钟更改一次值,因此节点应计算可用值。好心帮忙 [root@localhost sample]# cat node_avg.in QUEUE_NAME | ALLOC_NODES | RUN_NODES | AVAIL_NODE team1 | 2384 | 1019 | xxx team2 | 300 | 280 | xxx team3 | 90
[root@localhost sample]# cat node_avg.in
QUEUE_NAME | ALLOC_NODES | RUN_NODES | AVAIL_NODE
team1 | 2384 | 1019 | xxx
team2 | 300 | 280 | xxx
team3 | 90 | 0 | xx
team4 | 240 | 236 |
team5 | 90 | 27 |
team6 | 120 | 0 |
team7 | 270 | 146 |
我刚试过,但没办法。请看下面的脚本
[root@localhost sample]# cat avg.in
for i in team1 team2 team3 team4 team5 team6 team7
do
ALLOC_NODES=$( cat /root/script/sample/node_avg.in | grep $i | grep -v QUEUE_NAME | awk '{print $3}')
RUN_NODES=$(cat /root/script/sample/node_avg.in | grep $i | grep -v QUEUE_NAME | awk '{print $5}')
avail=$($ALLOC_NODES - $RUN_NODES)
done
[root@localhost示例]#您必须使用double
(
)
来计算表达式:
avail=$(($ALLOC_NODES - $RUN_NODES))
您可以使用更简单的方法,如
awk-F\|“{print$1$2-$3}”
为您进行计算
cat node_avg.in | awk -F\| '{ print $1 $2-$3}' | tail -n +2
team1 1365
team2 20
team3 90
team4 4
team5 63
team6 120
team7 124
您向我们展示了一个文件,不清楚它是示例输入文件还是所需的输出文件,以及一个脚本,该脚本不执行您想执行的操作,并要求我们帮助您执行您想执行的操作。想想看。您可能希望编辑您的问题,以提供清晰的示例输入、预期输出和要求。