Variable / Array abschneiden

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mehlbox, 12.01.2009.

  1. #1 mehlbox, 12.01.2009
    Zuletzt bearbeitet: 13.01.2009
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo zusammen,

    habe ein Problem welches ich mal wieder ohne Hilfe nicht behoben bekomme.

    Habe in einem Textfile an einer Stelle einen langen String stehen den ich abschneiden möchte und zwar möchte ich den Teil zwischen dem dritten / und dem vierten / haben und wegschreiben und das Teil nach dem vierten /

    $9 ist folgendermassen aufgebaut
    /bla/blabla/texttexttext/*.txt

    Das ganze soll in shell script geschrieben sein.

    arbeite mit awk und print $9
    wie kann ich denn nun $9 auseinanderpflücken und die einzelnen Teile davon in ergebnis wegschreiben?
    Wie muss ich da cut oder awk -f einbauen?

    Danke für Eure Hilfe
     
  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, 14.01.2009
    Zuletzt bearbeitet: 14.01.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Ich würde das einfach zweimal durch awk (oder sed, oder cut) jagen.
    Du kannst zum Beispiel erstmal nur das 9. Feld bearbeiten mit awk (einfach nur "print $9" und das dann wieder durch awk jagen mit -F'/').
    Das könntest du in einer Variable abspeichern und dann deinen zweiten Durchlauf so ändern: (Variable heißt hier foo)
    Code:
    grep "Jan *12" /var/log/text.txt | awk '{$9 = "'"$foo"'"; print $14, $2, $3, $4, $5, $7, $8, $12, $9}' >>/var/log/ergebnis.txt
    kA, geht betimmt auch einfacher.

    edit: oh warte, Schwachfug ^_^
    Das würde nur bei einer einzelnen Zeile funktionieren. Du könntest zwar auch mit nem Array arbeiten, aber naja...
    Ich würde einfach mit perl arbeiten.
    Hier mal beispielhaft:
    Code:
    echo foo bar 1:2:3 |
    perl -anle '$F[2]=(split /:/, $F[2])[1]; print "$F[1] $F[0] $F[2]"'
    edit again: in diesem Fall ließe sich das sogar noch kürzer schreiben:
    Code:
    echo foo bar 1:2:3 |
    perl -anle '$F[2]=(split /:/, $F[2])[1]; print "@F[1,0,2]"'
     
Thema: Variable / Array abschneiden
Besucher kamen mit folgenden Suchen
  1. awk variablen abschneiden

Die Seite wird geladen...

Variable / Array abschneiden - Ähnliche Themen

  1. Variablen Arraynamen vergeben

    Variablen Arraynamen vergeben: Hallo, ich suche nach einer Lösung einen Array in mehrere Kleine zu splitten, indem ich bestimmte Arrayelemente gruppiere. Folgendes habe...
  2. Variablenarray

    Variablenarray: Hi Zusammen, möchte in einen Scripte (Suse 9.2, Bash )Datumsangaben verarbeiten. Hierzu ziehe ich mir per formatieren Date die Info und möchte...
  3. Array Variablen Änderung

    Array Variablen Änderung: Hallo Zusammen, ich hoffe ich finde hier den Fehler, der mich nun seit 2 Tagen nervt. Zum Szenario, ich habe eine Variable in Form von: Die...
  4. Variable oder Array nach Schleifendurchlauf

    Variable oder Array nach Schleifendurchlauf: Hallo zusammen, ich hab vor einiger Zeit ein Skript geschrieben (unter AIX), dass aus einer Datei Werte ausliest und in zwei Arrays schreibt....
  5. Linux 4.5 will UEFI-Variablen besser schützen

    Linux 4.5 will UEFI-Variablen besser schützen: Das Löschen bestimmter UEFI-Variablen kann manche Rechner nicht mehr startbar machen. Das kommende Linux 4.5 ergreift Maßnahmen dagegen, die im...