予想 - パターンのすべての発生を解析し、変数に保存します。

予想 - パターンのすべての発生を解析し、変数に保存します。

プログラムの出力で複数のMacアドレスを処理しようとしています。出力形式は次のとおりです -

Device B0:CA:68:CF:88:54 dev1
Device DC:16:B2:AE:FB:8F dev2
Device B0:CA:68:CF:88:11 dev3
Device DC:16:B2:AE:FB:22 dev4

Macアドレスとその名前をファイルに保存したいです。 Macアドレスを変数に保存してさらに処理したいです。

Expectに問題があります。どうすればいいですか?助けてください

以下のコマンドは機能しますが、単一のMacのみを提供します。

expect -re "Device.*(\[0-9A-Z]\[0-9A-Z]:\[0-9A-Z]\[0-9A-Z]:\[0-9A-Z]\[0-9A-Z]:\[0-9A-Z]\[0-9A-Z]:\[0-9A-Z]\[0-9A-Z]:\[0-9A-Z]\[0-9A-Z])"

答え1

プログラムと対話する必要がない場合は、exec出力を簡単にキャプチャできます。

set output [exec some_program]

set macs [lmap line [split $output \n] {lindex [split $line] 1}]

引用:実装する地図

プログラムが対話型である必要がある場合は、出力をキャプチャするのが少し面倒です。教えてください。

関連情報