在Linux中打印多个列的总和
我想得到两列值的和。我希望每个结果都是分开的。以下是我的价值观: 命令在Linux中打印多个列的总和,linux,perl,sed,awk,grep,Linux,Perl,Sed,Awk,Grep,我想得到两列值的和。我希望每个结果都是分开的。以下是我的价值观: 命令 iostat -x 1 2 \ | perl -e 'local $/=""; @p=<STDIN>; print @p[4];' \ | awk '{ print $6 " " $7}' \ | grep -v rsec 我想要这个结果 0.00 1608.00 22.00 0.00 10.00 1608.00 0.00 1312.00 0.00 0.00 0.00 0.00 0.00 296.00 32.
iostat -x 1 2 \
| perl -e 'local $/=""; @p=<STDIN>; print @p[4];' \
| awk '{ print $6 " " $7}' \
| grep -v rsec
我想要这个结果
0.00 1608.00
22.00 0.00
10.00 1608.00
0.00 1312.00
0.00 0.00
0.00 0.00
0.00 296.00
32.00 4824.00
以下是我尝试过的:
iostat -x 1 2 \
| perl -e 'local $/=""; @p=<STDIN>; print @p[4];' \
| awk '{ print $6 " " $7}' \
| grep -v rsec \
| awk '{ SUM += $1 SUM2 += $2} END { print SUM " " SUM2}'
iostat-x12\
|perl-e“local$/=”@p=;打印@p[4];'\
|awk“{print$6”“$7}”\
|grep-vrsec\
|awk'{SUM+=$1 SUM2+=$2}结束{print SUM“SUM2}”
这个命令给了我一个语法错误。解决方法是什么?根据手册页,awk中的命令可以用换行符、分号或两者分开。您的两个命令之间没有任何分隔。解决办法是写:
| awk '{ SUM += $1; SUM2 += $2} END { print SUM " " SUM2}'
根据手册页,
awk
中的命令可以用换行符、分号或两者分开。您的两个命令之间没有任何分隔。解决办法是写:
| awk '{ SUM += $1; SUM2 += $2} END { print SUM " " SUM2}'
只需添加一个
介于SUM+=$1
和SUM2+=$2
-->{SUM+=$1;SUM2+=$2}
。这解决了我的问题,谢谢。只需添加一个
介于SUM+=$1
和SUM2+=$2
-->{SUM+=$1;SUM2+=$2}
之间。这解决了我的问题,谢谢。