Anzeige:
Ergebnis 1 bis 3 von 3

Thema: #!/bin/bash Teil einer Zeile ausschneiden

  1. #1
    Prim
    Gast

    Unhappy #!/bin/bash Teil einer Zeile ausschneiden

    Hallo,
    hab ein Problem und ich find keine Lösung!
    Folgendes ich möchte aus einem File einen Teil (Zahlen) einer Zeile ausschneiden, nur ist dieser Teil nicht bei jeder Zeile gleich lang, d.h. die Länge variiert.
    Das File ist so aufgebaut:

    #123456 # Text
    12345678951 # Text
    #123456789123 # Text
    1234 # Text

    Hättet ihr ne Idee, wie ich nur die Zahlen ausschneiden kann und nicht die ganze Zeile?

    MfG Christoph
    Geändert von Prim (12-09-2007 um 09:48 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    was ist das für ein Format? Da sind mal # am Anfang, mal keine, mal Leerzeichen zwischen Zahl und #, mal nicht, ist die auszuschneidende Zahl immer das erste (optional von einem # eingeleitete) Feld? Ist ein wenig unklar und somit sind auch die nachfolgenden Schnipsel eher als Tipp denn als Lösung zu verstehen.

    Code:
    # Variante 1
    tr -cd '[:digit:]\n' <datei
    # Variante 2
    sed -r 's/^#? ?([0-9]+).*$/\1/' datei
    # Variante 3
    sed 's/^#//;s/#/ /g' datei | cut -f1 -d' '
    # Variante 4
    sed 's/[^0-9]//g' datei
    Es gibt sicher noch tonnenweise mehr Varianten.

    Jan

  3. #3
    Prim
    Gast
    also, das file ist ein Blacklist file für ein SMS Modem, falls vor den Zahlen (das sind Handynummern) ein "#" steht wird die Handynummer in der Blacklist ignoriert und der User empfängt SMS! Falls also kein "#" steht, wird die Handynummer nicht ignoriert und der User bekommt keine SMS!

    Habe es nun mit sed 's/[^0-9]//g' datei gelöst!

    MfG Christoph
    Geändert von Prim (13-09-2007 um 07:32 Uhr)

Lesezeichen

Berechtigungen

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