substr($7,2,4)---> restituisce i primi 4 caratteri, a partire dal 2°, del 7° campo... se la data non è il 1° gennaio d'istinto lo fare uno script python, o altro linguaggio in grado di confrontare direttamente due date, però allora forse tanto vale caricarlo in un db come dicevi... Scrap On 04/28/2015 06:05 PM, MaX wrote:
Grazie.... ma dimenticavo di dire che la data di taglio, non èil primo dell'anno del 2009, ma qualche cosa tipo: 2009-01-26 18:36 ...non capisco il passaggio "substr($7,2,4" cmq.... sapevo che awk poteva farlo :D ciao MaX Il 28/04/15, Scrap<scrap@inventati.org> ha scritto: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-- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-REQUEST@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmaster@lists.debian.org To UNSUBSCRIBE, email to debian-italian-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org Archive: [🔎] 13ffc6a75b3814263becdea1cfed19be@inventati.org">https://lists.debian.org/[🔎] 13ffc6a75b3814263becdea1cfed19be@inventati.org