2017-08-10 148 views
1

我将cat命令(cat /proc/meminfo)的输出拆分为单独的行以处理它们。将cat命令的输出拆分为单独的行

#!/bin/bash 
CURR_DUMP=$(cat /proc/meminfo) 
arrIN=(${CURR_DUMP// kB/}) 

for t in "${arrIN[@]}" 
do 
echo $t 
done 

exit 0 

但是,而不是单独的行我有一个混乱的每一行的部分。 我的解决方案出了什么问题?

在此先感谢。

+1

你有什么计划来实现? – sjsam

+0

我想使用循环过滤一些有趣的行(或者只是在数组中使用它们的索引中的某些行),并构建自定义的内存使用输出。 – xqoo0ooq

+1

你的问题还不是很清楚。但我确信下面提到的'mapfile'解决方案是建议的方法。但值得研究'CURR_DUMP = $(cat/proc/meminfo)'会发生什么。它实际上给你一个字符串来处理,如果你希望在末尾去掉'kB'' arrIN =($ {CURR_DUMP // kB /})''不会做你想做的事情:) :)祝你好运 – sjsam

回答

4

您可以使用mapfile

mapfile -t arr < <(sed 's/ kB$//' /proc/meminfo) 
+2

感谢你非常喜欢你的答案! – xqoo0ooq