Ich habe ein expect-Skript, das eine Reihe von Konfigurationen ergreift und sie in separaten Dateien ausgibt. Die Dateien haben aber eine Menge ^H
, obwohl ich gerne sauber machen würde. Ich benutzte die CtrlV + CtrlH es im erwarten Skript zu setzen, aber wenn es läuft es tut es einfach. Die sed funktioniert gut in bash, scheitert aber in expect. Wie kann ich die ^H
aus den Dateien löschen?Erwarten löscht^H nach spawn bash -c
foreach host $ip {
set output [ open "$host" w ]
set timeout 2
spawn ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -o "StrictHostKeyChecking no" -oHostKeyAlgorithms=+ssh-dss [email protected]$host
expect {
eof {wait; spawn telnet $host;
expect "ame:";
send "$username\r"}
}
expect "word:"
send "$password\r"
expect "#"
send "$command\r"
sleep 2
expect {
"ore--" { send -- " "; puts $output $expect_out(buffer); exp_continue}
"#" {send -- "exit\r"}
}
puts $output $expect_out(buffer)
close $output
close
}
foreach host $ip {
spawn bash -c "sed -i 's/^H//gi; s/--More--//g' ./$host"
}
close
Hier ist, wie es aussieht, wenn es läuft:
spawn bash -c sed -i 's//gi; s/--More--//g' ./192.168.50.1
spawn bash -c sed -i 's//gi; s/--More--//g' ./192.168.51.1
spawn bash -c sed -i 's//gi; s/--More--//g' ./192.168.52.1
sind Sie haben keine Frage gestellt. Was benötigen Sie Hilfe mit – Gab
Ich fügte die Frage hinzu – cflinspach
könnten Sie versuchen, 'spawn bash -c 'sed -i' s/\\ o010 // gi; s/- Mehr - // g './$host "' (zwei umgekehrte Schrägstriche könnten helfen) und die Ausgabe veröffentlichen? –