2017-11-22 1 views
-1

Ich habe Datei mit zwei Spalten, zum Beispiel Zeile dieser Datei wie folgt aussieht: Benutzername, Datenbash, Zeile Formulardatei mit der Bedingung erhalten für bestimmte Spalte

username,20150706 

Ich versuche Linien zu erhalten die Daten in der zweiten Spalte sind älter als zB. 20151231.

BEARBEITEN, LÖSUNG: Ich möchte es in einer Schleife tun und lesen Sie die Daten (die zweite Spalte der Datei) dann vergleichen Sie es mit einem anderen Datum, z. 20151231. Wenn das Datum dann älter ist als 20151231, schreiben Sie die ganze Zeile (Benutzername, Datum) in die Datei. Und hier ist, wie ich es tun:

date1=20151231 
while read -r line; 
    do 
      date2=$(echo $line | cut -d "," -f2); 
      if ((date2 < date1)); 
        then 
        echo "$line" >> filename2; 
      fi 
    done < filename 

So ein kleines Problem :) gelöst

Vielen Dank im Voraus für alle Anregungen.

+0

Beispieldaten hilft immer – karakfa

+0

Ich würde Perl verwenden, da grundlegende Befehle für Datumsberechnungen nicht groß sind. Das Perl-Skript würde das gewünschte Datum als Limit erhalten. Dann extrahiere das Datum aus der Datei und vergleiche sie. – Nic3500

+0

http://idownvotedbecau.se/noattempt/ und http://idownvotedbecau.se/nocode/ – Nic3500

Antwort

1

Sie können dies mit awk lösen:

awk -F',' -v threshold=20151231 '$2<=threshold' file 

Hoffnung, dies hilft Ihnen!

Verwandte Themen