2012-04-24 2 views
1

Expectスクリプトを使用してホストの合計メモリを取得したいとします。 Get Total Memory of a host with LINUX/EXPECTで受け取った回答のおかげで、私は最終的な解決に近づいています。 (glenn jackmanSorpigalのおかげで)。Expectバッファー文字列から特定の番号を抽出するにはどうすればよいですか?

ホストに接続した後、私は次の行を実行します。

send "cat /proc/meminfo | grep MemTotal | awk '{print \$2}'\r" 

をそれは私がしたい値を返しますが、私は$expect_out(buffer)に含まれている値を取得するとき、それは私が必要とするよりもはるかに多くの情報が含まれている、など、送信文および前後のコマンドプロンプトフラグを含む。私は正確にexp_internal 1を使用して、以下を得る:

expect: set expect_out(buffer) "17# cat /proc/meminfo | grep MemTotal | awk '{print $2}'\r\n34150400\r\nCBA" 

私は終了間際の数だけ、34150400を抽出したいです。ヒントやアイデアは?

set fid [open /proc/meminfo] 
while {[gets $fid line] != -1} { 
    if {[regexp {^MemTotal: *(\d+)} $line - memtotal]} { 
     break 
    } 
} 
close $fid 
puts $memtotal 
:ところで

答えて

2
regexp "\n(\[0-9]+)" $expect_out(buffer) - num 
puts $num ;# => 34150400 

、あなたは、シェルコマンドを送信せずにこれを行うことができます
関連する問題