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

関連する問題