Brauche hilfe bei einen Shell Script "-eq Parameter"

V

vito123

Grünschnabel
Hallo miteinander,

bin Neuling in shell Programmierung und brauche etwas Hilfe:

und zwar möchte ich einige Zeilen aus einer Datei "user.db" auslesen:

Inhalt aus user.db:

[account]
User = Timo
farbe = red
Group = 1
regdate = 2012-08-31

[account]
User = Edward
farbe = green
Group = 12
regdate = 2012-03-21

[account]
User = Axel
farbe = white
Group = 1
regdate = 2011-09-11

usw.


hier ist mein Script (bitte nicht lachen, ist mein erstes Script)

Code:
#!/bin/bash

datum=$(date +%Y-%m-%d)

(cat /var/etc/test/user.db | grep -iw "user\|regdate" | cut -d" " -f3,6) > /var/etc/test/test.log

exit 0

was ich vor habe ist user und regdate auszulesen mit einen aber! es sollen nur user ausgelesen werden die älter sind als aktuelles Datum.
das kriege ich nicht hin...
von der logik her muss hier der Wert mit -eq Parameter verglichen werden irgend wie so:

$datum -eq (cat /var/etc/test/user.db | grep -iw "user\|regdate" | cut -d" " -f3,6) > /var/etc/test/test.log

bitte freundlichst um einen Tipp wie ich am besten das Lösen könnte

MfG
vito123
 
Hallo,
versuch doch mal diesen Weg:
Code:
grep -v 2012-09-07 user.db | grep regdate -B3
 
Zuletzt bearbeitet:
danke für den Beispiel, aber damit werden auch User mit neuerem Datum ausgewertet, ich will aber alle User nur mit älteren Datum auswerten, hab schon alle Befehle von grep gegogelt und leider noch keine Lösung für mich gefunden.
 
Du hattest geschrieben: "es sollen nur user ausgelesen werden die älter sind als aktuelles Datum."
Wenn DATUM das aktuelle Datum enthält (in meinem Bsp. der 7.09.2012), dann klappt es doch ...
???
 
ja schon, hab mich nicht genau ausgedrückt, habe einige User auch mit neueren Datum z.B.:

regdate = 2013-03-21
oder
regdate = 2012-11-11

deswegen stehe ich vor dieser Problematik.
 
Ein kleiner Algorithmus tut hier schon Not:
Code:
#!/bin/bash

User=""
Date=$( date -d 00:00:00 +%s )

while read Line
do

    if [ "${Line##User = }" != "$Line" ]
    then
        User="${Line##User = }"
    fi

    if [ "$User" -a "${Line##regdate = }" != "$Line" ]
    then

        if [ $( date -d ${Line##regdate = } +%s ) -lt $Date ]
        then
            echo "$User ${Line##regdate = }"
        fi

        User=""
    fi

done </var/etc/test/user.db
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Zurück
Oben