File scannen

V

value

Jungspund
Datei auswerten

[...]
 
Zuletzt bearbeitet:
Hallo,
soll denn nur das Muster 'networkAddress' übereinstimmen, oder muss die gesamte Zeile gleich sein?
Schreib doch mal auf, wie das Ergebnis aussehen soll.
Gruß zst
 
Hallo,
soll denn nur das Muster 'networkAddress' übereinstimmen, oder muss die gesamte Zeile gleich sein?
Schreib doch mal auf, wie das Ergebnis aussehen soll.
Gruß zst

Es reicht das die Zeile mit networkAaddress beginnt.

In dem Fall hätte also erkannt werden sollen, dass beim User1 die genannte Bedingung erfüllt worden ist und sein Username hätte dann in dem neuen File stehen sollen. Das Zurechtschneiden kann auch ersteinmal ruhig vernachlässigt werden.
 
So vielleicht:

Code:
#!/bin/bash

FOUND=0

while read ZEILE
do
    echo "$ZEILE" | grep -q ^network
    [ $? -eq 0 ] && FOUND=1
    echo "$ZEILE" | grep -q ^cn
    [ $? -eq 0 ] && [ $FOUND -eq 1 ] && FOUND=0 && echo "$ZEILE" | cut -c 5- >>NEUEDATEI
done < DEINEDATEI

ERGEBNIS:
user1
user2

Gruß zst
 
So vielleicht:

Code:
#!/bin/bash

FOUND=0

while read ZEILE
do
    echo "$ZEILE" | grep -q ^network
    [ $? -eq 0 ] && FOUND=1
    echo "$ZEILE" | grep -q ^cn
    [ $? -eq 0 ] && [ $FOUND -eq 1 ] && FOUND=0 && echo "$ZEILE" | cut -c 5- >>NEUEDATEI
done < DEINEDATEI

ERGEBNIS:
user1
user2

Gruß zst

Hi zst,

Danke erst einmal. Allerdings hast du genau DAS problem nicht gelöst was mir probleme bereitet.
Die Prüfung ob die network..-Zeile 2 mal vorkommt. Vielleicht kannst du mir dabei ja auch noch helfen.
 
Hallo value,
ich habe dir einen Ansatz geliefert.
Du kannst das Problem damit selbst lösen: nur das Rechnen mit der Variable FOUND musst du verändern, dann hast du die Lösung.
Gruß zst
 
Hallo value,
um nicht alles über PN zu diskutieren, hier eine Möglichkeit, die ich anhand deines oben gelisteten Beispiels angepasst habe. Es wird nur der user1 gefunden, weil die network-Zeile mehrfach vorkommt.
Sieh es als Ansatz, um deine eigenen Verbesserungen einzubringen.
Gruß zst
Code:
#!/bin/bash
 
FOUND=0

while read ZEILE
do
    echo "$ZEILE" | grep -q ^network
    [ $? -eq 0 ] && ((FOUND++))
    echo "$ZEILE" | grep -q ^cn
    [ $? -eq 0 ] && [ $FOUND -gt 1 ] && FOUND=0 && echo "$ZEILE" | cut -c 5- >>NEUEDATEI
done < DEINEDATEI

Inhalt von NEUEDATEI:
user1
 

Ähnliche Themen

sed problem

Wie vom Script verwendete Befehle ermitteln um sie bei Bedarf nach zu installieren?

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

chown Befehl in einem Script

Rekursives Ersetzen

Zurück
Oben