[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: escludere linee in base alla data



Prova a vedere così:

awk -F "," '{ if (substr($7,2,4) >= 2009) print $0 }' file.csv


in questo modo dovrebbe stamparti solo le righe con l'anno maggiore o uguale a 2009

Il 2015-04-28 14:57 MaX ha scritto:
ciao a tutti,

stavo cercando la miglior soluzione per eliminare da un file csv, le
linee la cui data e ora, indicata in un determinato campo è inferiore
ad un determinato valore.

il file è simile a questo:

"123","456","789","aaaa","bbbbbbb","cccc","2008-06-23
15:15","dddddd","000","123123"
"123","456","789","aaaa","bbbbbbb","cccc","2009-01-01
00:00","dddddd","000","123123"
"123","456","789","aaaa","bbbbbbb","cccc","2008-06-24
12:10","dddddd","000","123123"


vorrei tagliare via le linee che hanno la data inferiore al
"2009-01-01 00:00", e ovviamente non è in ordine di data.

Stavo pensando che si potrebbe riordinare le linee per data,
individuare a che linea comincia il "2009-01-01 00:00" e tagliare
quelle precedenti.

Oppure potrei inserire tutto in un db e con quello risolverei tutti i
problemi....

ma magari c'è qualche asso nella manica con sed o awk...

per esempio potrei creare una espressione regolare tipo

grep -v "\([0-9]*\)-\([0-9]*\)-\([0-9]*\) \([0-9]*\):\([0-9]*\)" file.csv

...ma ovviamente con questo selezionerei tutte le date e quindi
eliminerei tutte le linee.

Come fare a dire ad una espressione regolare che un numero, deve
essere inferiore o superiore ad un determianto valore?

idee?

ciao,
MaX


Reply to: