"" Weglöschen aus Textdatei

  • geschlossen

  • Saugerli
  • 985 Aufrufe 11 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • "" Weglöschen aus Textdatei

    Hallo, ich habe eine Textdatei mit Rechnernamen:

    "Rechner1"
    "Rechner2"
    usw

    Wie kann ich mit dem Script das diese Datei öffnet die "" löschen?
    Danke !

    Mfg
    Saugerli

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Saugerli ()

  • Quellcode

    1. $keineAnfuehrungsZeichen = '"Mein text"'

    Dann:

    Quellcode

    1. $keineAnfuehrungsZeichen =~ tr/\"//;

    oder

    Quellcode

    1. $keineAnfuehrungsZeichen =~ tr/"//;

    Ich bin mir bei Perl grade unsicher ob " zu maskieren sind.
  • Das funktioniert leider nicht :(

    Es wird alles aus meiner Textdatei gelöscht! :(

    Hier mal mein Script:

    Quellcode

    1. #!/opt/perl/bin/perl
    2. #
    3. # Liste Einträge in der DB
    4. #
    5. use Pg;
    6. use Fun; #/opt/perl/lib/5.6.1
    7. my @Zeilen;
    8. $basename="andreas";
    9. $port=5432;
    10. # DB connecten
    11. $conn=Pg::connectdb("dbname=$basename port=$port");
    12. $cs = $conn->status;
    13. if ($cs != PGRES_EMPTY_QUERY ) {
    14. $em = $conn->errorMessage;
    15. print "Keine Verbindung zur Datenbank\n$em\n";
    16. exit;
    17. } else {
    18. print "Zugriff auf Datenbank!\n";
    19. }
    20. my $test = open(DATEI, "> /share/staff/AD-Script/ADleichen.txt");
    21. if (not defined($test)){
    22. die "Fehler beim Oeffnen der Datei: $!\n";
    23. } else
    24. {
    25. print "Zugriff auf Datei!\n";
    26. while($Rechnername = <DATEI>)
    27. {
    28. $Rechnername=~ tr/\"//;
    29. print $Rechnername."\n";
    30. push @RechnernamenArray,$Rechnername;
    31. }
    32. }
    33. print @RechnernamenArray[0];
    34. print @RechnernamenArray[1];
    35. print @RechnernamenArray[2];
    36. print @RechnernamenArray[3];
    Alles anzeigen


    Das Script soll aus einer Textdatei Rechnernamen suchen und diese dann in der Datenbank vom Status verändern.
    Der SQL Codde ist noch nicht drin, das hier ist nur ein TestScript um die "" zu löschen.

    Das Push und die Print Befehle am ende sind nur zum testen, kann man sich wegdenken genauso wie den Datenbankaufruf.

    Danke soweit schonmal :)

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Saugerli ()

  • rmqm.pl:

    Quellcode

    1. $abc ='"Rechner1"';
    2. $abc =~ s/\"//g;
    3. print $abc."\n";

    -->

    Quellcode

    1. $ perl rmqm.pl
    2. Rechner1

    Langsam komme ich zu der Auffassung, ich sollte nicht mehr aus dem Kopf heraus Code posten -.-
  • hm auch das Killt die ganze Textdatei :(
    Habe das Script mal gekürzt (- Datanbankaufruf)

    Quellcode

    1. #!/opt/perl/bin/perl
    2. #
    3. # Liste Einträge in der DB
    4. #
    5. use Pg;
    6. use Fun; #/opt/perl/lib/5.6.1
    7. my @Rechnername;
    8. my $test = open(DATEI, "> /share/staff/AD-Script/ADleichen.txt");
    9. if (not defined($test)){
    10. die "Fehler beim Oeffnen der Datei: $!\n";
    11. } else
    12. {
    13. print "Zugriff auf Datei!\n";
    14. while($Rechnername = <DATEI>)
    15. {
    16. $Rechnername=~ s/\"//g;
    17. print $Rechnername."\n";
    18. push @RechnernamenArray,$Rechnername;
    19. }
    20. }
    21. print @RechnernamenArray[0];
    22. print @RechnernamenArray[1];
    Alles anzeigen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Saugerli ()

  • In der Ausgabe tauchen die Rechner dann ohne das "" auf aber in der Textdatei passiert nichts. Dort stehen die Rechner weiterhin mit "".

    Wäre zwar auch eine Möglichkeit da die Werte ja jetzt ohne das "" vararbeitet werden, es wäre aber dennoch schöner das auch in der Textdatei zu haben.

    Danke soweit schonmal ! :)
  • Dann packst du die Sachen die jetzt auf dem stdout landen entweder per perl in eine Datei
    oder du rufst die rmqm.pl (Bzw wie sie heissen mag), als eigenständiges Programm auf und
    pipst die Ausgabe des Scripts (die auf dem stdout landet) in eine Datei ;)