当我这样做
/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -A -I '/run/*' -I '/tmp/*' | cut -f2 -d"|" | \
awk '{
for (i = 1; i <= NF; i++){
print $i
}
}'
我明白了
/dev=0MB;6356;7151;0;7946
/dev/shm=74MB;6367;7163;0;7959
/sys/fs/cgroup=0MB;6367;7163;0;7959
/=12975MB;12792;14391;0;15990
/home=139507MB;190780;214627;0;238475
/mnt/dat0=2316MB;35376;39798;0;44221
问题
如何遍历 $i
中由 ;
分隔的每个元素?
最佳答案
使用函数 split()
将正则表达式设置为 [;=]
将每个字段放入数组 a
。
/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -A -I '/run/*' -I '/tmp/*' | awk -F'|' '{
split($2, a, "[;=]");
for(i in a){
print a[i]
}
}'
请注意,cut
命令可以通过使用第二个字段替换为 awk -F'|'
。
关于linux - 如何遍历awk中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50394137/