Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Zeilen mit Zeilenumbruch mittels echo in neue Datei schreiben

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.04.2008
    Beiträge
    50

    Question Zeilen mit Zeilenumbruch mittels echo in neue Datei schreiben

    Hallo,


    ich habe folgendes Anliegen.

    Ich möchte die nummerierten Zeilen in eine tmp Datei schreiben um später den gewünschten Eintrag mit Zeilennummer finden zu können.

    Leider spediert echo nach jeder Zeile ein Leerzeichen, nachdem der Umbruch erfolgte. also sind alle Zeilen dann in der neuen datei um ein Zeichen nach rechts versetzt.

    Zudem scheint auch was mit der datei zu stimmen. ich denke das format passt nicht mehr, denn wenn ich die neue datei durchsuche, funktioniert das mit der suche nicht mehr ... die definierte zeile wird dann nicht mehr ausgegeben.


    Anbei mal der code:

    echo `cat -n $BIN_DIR` > tmp_BIN_DIR.$$ // neue Datei mit Zeilennummern

    # sucht den gewuenschten Eintrag heraus und uebergibt den Eintrag an $SEARCH_ENTRY
    SEARCH_ENTRY=`grep -i $DEL_FILE tmp_BIN_DIR.$$`
    echo SEARCH_ENTRY: $SEARCH_ENTRY
    // irgendwie wird der Eintrag nicht mehr gefunden, obwohl es vorher funktionierte (Dateiformat passt nicht?)

    inhalt der neuen Datei:

    1 data1 data2
    2 data3 data 4



    Es wird nach data3 gesucht und auch gefunden, bevor ich die Zeilen nummeriere. Also die vorhergehende Indexdatei kann durchsucht werden.

    Woran liegt das, dass es nun nicht mehr geht?

  2. #2
    Registrierter Benutzer Avatar von ContainerDriver
    Registriert seit
    10.01.2003
    Beiträge
    418
    Hallo.

    Zitat Zitat von Chito Beitrag anzeigen
    echo `cat -n $BIN_DIR` > tmp_BIN_DIR.$$ // neue Datei mit Zeilennummern
    Wieso gibts du denn die Ausgabe von cat an echo weiter? Das echo könnte man auch weglassen, also
    Code:
    cat -n $BIN_DIR > tmp_BIN_DIR.$$
    . Allerdings sind dann vor den Zahlen einige Leerzeichen zu finden, wenn die dich stören, musst du die halt noch wegschneiden.

    # sucht den gewuenschten Eintrag heraus und uebergibt den Eintrag an $SEARCH_ENTRY
    SEARCH_ENTRY=`grep -i $DEL_FILE tmp_BIN_DIR.$$`
    echo SEARCH_ENTRY: $SEARCH_ENTRY
    // irgendwie wird der Eintrag nicht mehr gefunden, obwohl es vorher funktionierte (Dateiformat passt nicht?)

    inhalt der neuen Datei:

    1 data1 data2
    2 data3 data 4



    Es wird nach data3 gesucht und auch gefunden, bevor ich die Zeilen nummeriere. Also die vorhergehende Indexdatei kann durchsucht werden.

    Woran liegt das, dass es nun nicht mehr geht?
    Warum die Suche nicht mehr funktioniert, kann ich dir auch nicht sagen, dein Code schaut richtig aus.

    Übrigens: verwende, um Quellcode zu posten, besser die Code-Tags.

    Gruß, Florian
    Ein gebrechlich Wesen ist der X-Server.

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.04.2008
    Beiträge
    50
    Vielen Dank Florian,

    wieso das nicht funktionierte kann ich dir sagen:

    cat -n $BIN_DIR > tmp_BIN_DIR.$$

    durch das echo von mir wurde die datei nicht wirklich Zeilenweise gefüllt. Somit beinhaltete die datei und einen String mit visuellen Zeilenumbrüchen ... nicht aber wirklich Zeilen, die später wieder ausgelesen werden können.

    Nun funktioniert alles bei mir.



    wow ... so langsam macht mir das ganze wirklich spass^^

  4. #4
    Registrierter Benutzer
    Registriert seit
    04.04.2008
    Beiträge
    50
    öhm ... eine sache ist da noch.

    Wieso wird hier der entsprechender eintrag in der datei nicht gelöscht?

    PHP-Code:
       # !!!!!!!! HIER wird immer nur die 1 Zeile gelöscht
       
    awk 'NR != $FIND_NUM' $BIN_DIR tmp.$$; mv tmp.$$ $BIN_DIR 
    $FIND_NUM ist die gefundene Zeilennummer.
    Ich glaube es ging mal so ... bin aber etwas verwundert wieso das jetzt so nicht mehr geht.

    Kann du bitte noch einmal fix über den code schauen.


    vielen dank^^
    Geändert von Chito (06-04-2008 um 20:07 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    04.04.2008
    Beiträge
    50
    Vielen Dank für deine Gesamte Unterstützung. Konnte das Problemchen eben selbst lösen. Vielen Dank für alles

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •