2017-08-10 54 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