Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8407[/thread]

\n als Return interpretieren

Leser: 1


<< >> 7 Einträge, 1 Seite
Gast Gast
 2006-10-12 12:47
#70695 #70695
Hallo,

ich habe folgendes Problem:

ich möchte aus einer Textdatei Befehlszeilen für einen Cisco-Router in ein Array einlesen, und jeden Befehl auf dem Router wieder absetzen.

Allerdings haben ich ein Problem, mit dem Zeilenumbruch.

Beispiel:
In der Textdatei steht folgender Befehl:
copy running-config tftp://10.10.10.1/router-conf\n\n

Dann setzt mein Programm folgenden String an den Router ab:
copy running-config tftp://10.10.10.1/router-conf\n\n

Und da liegt das Problem,
Ich müsste den Befehl gefolgt von zwei Return absetzen, nämlich so:
copy running-config tftp://10.10.10.1/router-conf
<Return>
<Return>

Frage:
Wie schaffe ich es, dass die beiden \n\n als Return-Sequenzen interpretiert werden?

Hier mein Programm:

#!/usr/bin/perl
open LIST, "<textdatei.txt";
while (<LIST>)
{
print $_
}

gibt folgendes aus:
copy running-config tftp://10.10.10.1/router-conf\n\n

ich bräuchte aber folgende Ausgabe:
copy running-config tftp://10.10.10.1/router-conf
<Return>
<Return>

Vielen Dank im voraus
renee
 2006-10-12 13:06
#70696 #70696
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl
open LIST, "<","textdatei.txt" or die $!;
while (<LIST>)
{
s/\\n/\n/g;
print;
}
close LIST;
\n\n

<!--EDIT|renee|1160644156-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
docsnyder
 2006-10-13 12:50
#70697 #70697
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
s/\\n/\r/g;
renee
 2006-10-13 13:08
#70698 #70698
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ähm, nein... Das ist nur der "Carriage Return". Wenn Du folgendes machst:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
open LIST, "<","textdatei.txt" or die $!;
while (<LIST>)
{
chomp;
s/\\n/\r/g;
print;
}
close LIST;[7code]

mit der Textdatei:[code]dies ist ein Test\n\n
hallo


bekommst Du:
Code: (dl )
1
2
~/entwicklung 66> perl list.pl 
hallo



Auch für einen Mac sollte es mit \n gehen, weil das intern richtig umgesetzt werden sollte...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
docsnyder
 2006-10-13 14:34
#70699 #70699
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@renee

Dann habe ich Steve falsch verstanden, denn er schrieb ja, er möchte ein "Return" haben. Aber Du hast wohl recht, er meint ein <ENTER>.

Gruß, Doc
renee
 2006-10-13 14:49
#70700 #70700
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Achso, stimmt. Auf diese Idee bin ich gar nicht gekommen. Naja, einer von uns wird wohl recht haben und Steve wird hoffentlich wissen was er wollte :rock:
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Stevee
 2006-10-17 10:43
#70701 #70701
User since
2006-10-17
5 Artikel
BenutzerIn
[default_avatar]
Jetzt musst ich mich doch mal anmelden hier;)

Also ich wollte ein "Enter", hat wunderbar funktioniert...

Danke!!

Steve
<< >> 7 Einträge, 1 Seite



View all threads created 2006-10-12 12:47.