Mittels AWK und einer Variablen suchen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von ramann, 20.06.2007.

  1. ramann

    ramann Eroberer

    Dabei seit:
    20.06.2007
    Beiträge:
    59
    Zustimmungen:
    0
    Hi Zusammen,

    ich versuche mit einem Bash-Script eine Datei nach bestimmten Werten auszulesen welche ich vorher per Variable übergebe - klappt aber nicht...

    #!/bin/bash
    if [ -f ./con_ports ]
    then
    while read liste
    do
    awk '$1 ~ /$liste/ {print}' con_ports > ergebniss
    done < con_ports
    fi

    Das Problem scheint der Suchstring zu sein, welchen ich per Varibale zuweise...

    Thanks
    bjoern
     
  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. NoXqs

    NoXqs Routinier

    Dabei seit:
    07.05.2007
    Beiträge:
    420
    Zustimmungen:
    0
    Ort:
    Bremen
    Ja, auf Grund der einfachen Hochkommata, kann die Shell die Variable nicht übergeben und der AWK kann sie nicht lesen.

    Ich weiß nicht genau was rauskommen soll, aber als Tip:
    awk -v "myvar=${liste} '$1 ~ /$myvar/ {print}' con_ports > ergebniss
     
  4. #3 Wolfgang, 21.06.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Du kannst dir das while read sparen, da awk die Datei als Argument übergeben bekommt.

    awk kennt auch eine Option -v. Auszug aus der Manpage:
    Dort könntest du dein liste ganz normal initialisieren.

    Gruß Wolfgang
     
  5. ramann

    ramann Eroberer

    Dabei seit:
    20.06.2007
    Beiträge:
    59
    Zustimmungen:
    0
    Das mit der Variablen Zuweisung mittels

    -v "myvar=${liste}

    geht, aber leider wird

    /$myvar/

    nicht übernommen, das Vergleichen mit festen Werten ala /10/ ist keine Problem...

    Das Ziel des Scriptes soll sein, eine Datei zu durchsuchen ob bestimmte Werte aus die in einer anderen Datei stehen, vorhanden sind. Die Werte die vorhanden sind sollen dann ausgegeben werden
     
  6. #5 Wolfgang, 21.06.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    AWK ist nicht grade mein Hauptgebiet, da ich für sowas lieber Perl verwende.

    Aber IMHO ist /Pattern/{Action} mit Pattern als Variable nicht möglich.
    Für solche Fälle würde ich die Funktion match (suchstring, "pattern") verwenden.

    e.g.
    Code:
    SHELLVARIABLE="SUCHSTRING";
    awk -v var=$SHELLVARIABLE 'match($1,var){print $1}' inputfile >Outputfile
    
    Das dürfte zum Erfolg führen.

    Gruß Wolfgang
    PS AWK spricht private Variablen nicht mit $NAME sondern NAME an!
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. ramann

    ramann Eroberer

    Dabei seit:
    20.06.2007
    Beiträge:
    59
    Zustimmungen:
    0
    Danke!
     
  9. AdZo

    AdZo Grünschnabel

    Dabei seit:
    06.03.2008
    Beiträge:
    2
    Zustimmungen:
    0
    hallo, bin neu hier und bräuchte genau dein skript...
    könntest den kompletten code reinsetzen?
     
Thema: Mittels AWK und einer Variablen suchen
Besucher kamen mit folgenden Suchen
  1. awk string suchen

Die Seite wird geladen...

Mittels AWK und einer Variablen suchen - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. rpm mittels yum

    rpm mittels yum: Hallo Wir haben folgendes System: Red Hat Enterprise Linux Server release 5.1 (Tikanga) (32 Bit - i686) Gerne würde ich darauf dieses...
  3. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  4. Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED

    Leerzeichen, Großbuchstaben, HTML Tags entfernen mittels SED: Hallo zusammen. Ich habe folgendes Anliegen: Ich habe eine HTML Datei mit entsprechenden Tags usw. . Diese möchte ich in eine normale Textdatei...
  5. pdf mittels script öffnen und script dabei weiter ausführen

    pdf mittels script öffnen und script dabei weiter ausführen: Hallo, ich öffne in einen bash Skript eine PDF mit: acroread /.../.../file.pdf Ghet es auch, dass das Skript nach dem öffnen des PDFs weiter...