Inhalte mit grep mit Nummer in File schreiben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von blueunderground, 25.11.2005.

  1. #1 blueunderground, 25.11.2005
    blueunderground

    blueunderground Mitglied

    Dabei seit:
    13.10.2005
    Beiträge:
    28
    Zustimmungen:
    0
    Hi Zusammen,

    habe eine Datei Names file.txt.

    INHALT (file.txt)

    nun mache ich ein:

    Code:
    grep Test file.txt
    Als ergebnis erhalte ich die gefunden Ergebnisse.

    Test
    Test
    Test

    Jetzt möchte ich meinen Suchergebnissen Nummern übergeben, als ergebnis sollte dann sowas rauskommen.

    Test 1
    Test 2
    Test 3

    immer eine fortlaufende Nummer soll hinter dem gefundenen Ergebnis am besten in einem File names ergebnis_test_nummern.txt gespeichert werden.

    Wie mache ich das am besten ?

    Danke
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 ninguno, 25.11.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    warum hinten? vorn ist doch viel schöner :D
    Code:
    grep Test file.txt|cat -n
     
  4. #3 ninguno, 25.11.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    aber bitteschön wenns unbedingt sein muss :think:
    Code:
    i=1; while read zeile; do echo $zeile $((i++)); done<file.txt
     
  5. #4 Wolfgang, 25.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Darf es auch perl sein?
    Schnellschuss:

    perl -anle '(/Suchwort/ig)?print "$_ Treffer",++$i:1'input_file




    Zählt nicht die Treffer ( wo ist hier grep?) , sondern alle Zeilen.
    Das geht mit wc -l file schneller. ;)

    Es geht natürlich auch mit grep, aber das überlass ich nun doch mal @ninguno. ;)
    Statt file muss $(grep 'Suchwort' file) rein.
    Ein wenig tricky ist das richtige Quoting. ;)

    Gruß Wolfgang
     
  6. #5 ninguno, 25.11.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    ah ja das hab ich im eifer des gefechts wohl übersehen :rolleyes: , aber so gehts
    Code:
    i=1; grep Test file.txt|while read zeile; do echo $zeile $((i++)); done
     
  7. #6 Wolfgang, 25.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Code:
    wolle@NIETZSCHE$
    i=1; grep Test testfile|while read zeile; do echo $zeile $((i++)); done
     [i]ein test 1
     noch ein test 1
     und noch ein test 1[/i]
    
    :think:
    Code:
    [b]
    wolle@NIETZSCHE$
    export i=1; grep test testfile|while read zeile; do echo $zeile $i;i=$((i+1)); done
    [i]
     ein test 1
     noch ein test 2
     und noch ein test 3[/i]
    [/b]
    
    :devil:
    :brav:

    duck und wech :D

    Gruß Wolfgang
     
  8. #7 ninguno, 25.11.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    hallo Wolfgang,
    bei mir geht auch meine version:
    Code:
    franz@linux:~/tmp> i=1; grep Test file.txt|while read zeile; do echo $zeile $((i++)); done
    Dies ist ein Test. 1
    Dieser Test ist super. 2
    Durch diesen Test kann man viel lernen. 3
    
    was hast du für eine shell?
     
  9. #8 Wolfgang, 26.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt


    $ bash --version
    GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.


    Gruß Wolfgang
     
  10. #9 Goodspeed, 26.11.2005
    Goodspeed

    Goodspeed Foren Gott
    Moderator

    Dabei seit:
    21.04.2004
    Beiträge:
    4.165
    Zustimmungen:
    1
    Ort:
    Dresden
    Deine bash ist kaputt *g*
    Code:
    goodspeed:~$ i=1; grep Test testfile|while read zeile; do echo $zeile $((i++)); done
    Dies ist ein Test. 1
    Dieser Test ist super. 2
    Durch diesen Test kann man viel lernen. 3
    goodspeed:~$ bash --version
    GNU bash, version 3.00.16(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.
    
     
  11. #10 Wolfgang, 26.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Das ist gut möglich, habe es eben in meinem Rescue-System mit der bash2.05 getestet und dort geht es auch mit $((i++));
    Deshalb habe ich ja auch nicht gesagt, dass diese Lösung falsch ist, sondern nur dass es bei mir nicht geht.

    Ein
    a=1; for i in {1..10}; do echo $((a++)); done
    funktioniert auch hier, lt.manpage sollte es auch!
    Werde wohl mal meine bash reparieren müssen.
    Treten da mitunter seltsame Quoting-Probleme auf.
    *gg*
    Gruß Wolfgang
     
  12. #11 Schlaubi_fi.de, 26.11.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Wie repariert man eine Bash? :think: :D
     
  13. #12 Wolfgang, 26.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Indem ich das Paket neu installiere. ;)

    Gruß Wolfgang
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #13 Schlaubi_fi.de, 26.11.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    *lach* oder so :D
     
  16. #14 blueunderground, 28.11.2005
    blueunderground

    blueunderground Mitglied

    Dabei seit:
    13.10.2005
    Beiträge:
    28
    Zustimmungen:
    0
    Hi, ok klappt mal wieder super !

    Vielen Dank für Eure gemeinesame Hilfe :-)

    DANKE
     
Thema:

Inhalte mit grep mit Nummer in File schreiben

Die Seite wird geladen...

Inhalte mit grep mit Nummer in File schreiben - Ähnliche Themen

  1. Dateiinhalte vergleichen - Neue Sätze dann ausgeben

    Dateiinhalte vergleichen - Neue Sätze dann ausgeben: Liebe Forumsmitglieder, ich benöte mal wieder Eure Hilfe: Ich möchte 2 Dateien vergleichen. Datei-1 hat z.B. 100 Datensätze mit mehreren Feldern...
  2. html seite runterladen und die Inhalte als .txt-Date speichern

    html seite runterladen und die Inhalte als .txt-Date speichern: Hallo! Ich bin noch neu auf dem Gebiet, von daher denke ich sind meine Fragen für manche von euch recht simpel. Mit den Standardbefehlen habe ich...
  3. Mozilla: Drei Prinzipien für das Blockieren von Inhalten

    Mozilla: Drei Prinzipien für das Blockieren von Inhalten: Mozilla beobachtet nach eigenen Angaben die aktuellen Entwicklungen beim Blockieren von Inhalten und hat nun drei Prinzipien vorgeschlagen, die...
  4. Array mit Werte - die Leerzeichen beinhalten - abfüllen

    Array mit Werte - die Leerzeichen beinhalten - abfüllen: Hallo zusammen Bin neu hier und hab direkt eine Frage... Ich habe ein Befehl der mir einige Zeilen mit Werten ausgibt: Befehl:...
  5. Inhalte in einer Datei suchen und Dateiname ausgeben

    Inhalte in einer Datei suchen und Dateiname ausgeben: Hallo zusammen, ich bin ein ziemlicher Perl Neuling und habe ein Problem das ich mit Perl lösen möchte. Ein Programm schreibt in das...