Bash调用awk写入文本文件
考虑iostat的输出 如何在忽略sda字符串的情况下将以sda开头的行的值读入bash数组?尝试以下操作:Bash调用awk写入文本文件,bash,Bash,考虑iostat的输出 如何在忽略sda字符串的情况下将以sda开头的行的值读入bash数组?尝试以下操作: x=($(iostat|grep -Po '^sda\s*\K.*')) 用您的示例进行测试: kent$ cat f Linux 2.6.31-20-generic-pae (ubuntu-9-10) 04/08/2010 _i686_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle
x=($(iostat|grep -Po '^sda\s*\K.*'))
用您的示例进行测试:
kent$ cat f
Linux 2.6.31-20-generic-pae (ubuntu-9-10) 04/08/2010 _i686_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.38 0.07 0.66 0.39 0.00 96.51
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 6.93 131.80 85.02 1347350 869177
kent$ x=($(cat f|grep -Po '^sda\s*\K.*'))
kent$ echo ${#x}
5
kent$ echo ${x[3]}
85.02
kent$ echo ${x[@]}
6.93 131.80 85.02 1347350 869177
使用sed查找行并从中删除字符串。使用$。。。将其输出捕获到变量
$ sda=( $(iostat | sed -n '/^sda/ s/^sda// p') )
$ echo ${sda[0]}
6.93
$ echo ${sda[1]}
131.80
欢迎来到StackOverflow。请花些时间阅读。现在,我已经改进了你的问题,但是如果你想让你的问题得到认真对待,你可能需要在这些问题上花费更多的精力。你的主题行似乎与你在最后一行中陈述的问题没有任何关系。祝你好运
$ sda=( $(iostat | sed -n '/^sda/ s/^sda// p') )
$ echo ${sda[0]}
6.93
$ echo ${sda[1]}
131.80