String suchen und ab dort auslesen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Jan S., 04.03.2009.

  1. Jan S.

    Jan S. Grünschnabel

    Dabei seit:
    11.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo zusammen! Ich arbeite mit bash.

    Ich habe in etwas folgende Datei vorliegen:

    Es gibt immer eine unterscheidliche Anzahl an "Scans". Ich möchte nun alle Daten hinter "Scan #Number," zeilenweise auslesen und in eine andere Datei schreiben.

    Mit welchem Befehl kann ich das umsetzen? Vielen Dank schonmal!
     
  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 Gott_in_schwarz, 04.03.2009
    Zuletzt bearbeitet: 04.03.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Code:
    sed -n '/^Scan #[0-9]\+/{ s!^Scan #[0-9]\+,\(.\+\)!\1!; p }'
    "-n" sorgt dafür, dass sed den patternspace nicht ausgibt (wie es default behaviour wäre).
    Dann wird für jede Zeile, auf die die Regex /^Scan #[0-9]*/ matcht der code in den curly braces ausgeführt.
    s!regex!foo! substituiert regex durch foo im patternspace und "p" (für print) gibt den patternspace dann aus.
    (geklammerte Ausdrücke in einer Regex können mit \<nummer des ausdrucks> referenziert werden. Also steht \1 für den Inhalt der ersten Klammer)

    edit: wenn du gnu sed hast, kann man das ganze leicht verschönern:
    Code:
    sed -rn '/^Scan #[0-9]+/{ s!^Scan #[0-9]+,(.+)!\1!; p }'
    Imho etwas klarer.
     
  4. Jan S.

    Jan S. Grünschnabel

    Dabei seit:
    11.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo Gott_in_schwarz!!

    Vielen Dank! Das is ja wesentlich einfach als ich es mir dachte... Ich habe fogeldnes draus gebastelt...ganz einfaches Skript.... Tolles Forum!!!

     
  5. Jan S.

    Jan S. Grünschnabel

    Dabei seit:
    11.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo zusammen,
    ich bin's nochmal ;-)

    Gibt es auch die Möglichkeit direkt im sed-Befehl die Daten nur bis zum 5ten Wert rauszuholen?
    Sprich bei folgender Zeile:
    sollte das hier rauskommen:

    Vielen Dank!
     
  6. larry

    larry Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    159
    Zustimmungen:
    0
    Wenn es nicht unbedingt sed sein muss, kannst du das ganz leicht mit awk erledigen:
    Code:
    awk -F "," '{ printf("%s,%s,%s", $2,$3,$5) }'
     
Thema:

String suchen und ab dort auslesen

Die Seite wird geladen...

String suchen und ab dort auslesen - Ähnliche Themen

  1. String einer bestimmten Zeile durchsuchen

    String einer bestimmten Zeile durchsuchen: Hallo, wie kann ich den eine bestimmte Zeile einer Textdatei zerlegen und daraus ein Stück entnehmen? Ich suche nach der Zeile in der "model...
  2. Nach Inhalt in Dateien suchen und den String aus Datei löschen

    Nach Inhalt in Dateien suchen und den String aus Datei löschen: Hallo alle miteinander, ich bin auf der Suche nach einer Möglichkeit nach Dateien mit einem bestimmten Inhalt zu suchen. Wenn der String in der...
  3. Textstring nach muster durchsuchen und in Variable speichern

    Textstring nach muster durchsuchen und in Variable speichern: Hallo, habe ein "kleines" Problem! ps -ef | grep mysql | grep GroupLabel | grep -v grep liefert: root 4298 1 0 Nov13 ? 00:00:00...
  4. nach einem String suchen und anschließend wert speichern

    nach einem String suchen und anschließend wert speichern: Hallo zusammen, ich, als Anfänger in Shellskripting stehe vor einer "Riesenaufgabe". Ich habe es mit folgendem Fall zu tun: ich leite...
  5. String A ab dem letztem vorkommen von String B suchen

    String A ab dem letztem vorkommen von String B suchen: Hallo Zusammen, ich versuche ein bash-Script (SuSE 9.2) zu schreiben, bei dem ich auf das vorhanden sein von String A ab dem letztem vorkommen...