Saturday, 15 June 2013

bash - How to get a data range in a million rows dataset -



bash - How to get a data range in a million rows dataset -

i have got file millions of rows has next pattern

01/02/1991,0931,7.13,7.13,7.13,7.13,8000 01/02/1991,0932,7.14,7.14,7.14,7.14,8000 01/02/1991,0935,7.16,7.16,7.16,7.16,3200 01/02/1991,0938,7.16,7.17,7.16,7.17,19200 01/02/1991,0941,7.19,7.19,7.19,7.19,200000 01/02/1991,0956,7.19,7.19,7.19,7.19,8800

the date format mm/dd/yyyy. how can info range between 01/01/2002 , 08/31/2008 , delete other lines? dates 01/01/2002 , 08/31/2008 may not in file.

i in bash

head file:

01/02/1991,0931,7.13,7.13,7.13,7.13,83200^m$ 01/02/1991,0932,7.14,7.14,7.14,7.14,8000^m$ 01/02/1991,0935,7.16,7.16,7.16,7.16,3200^m$ 01/02/1991,0938,7.16,7.17,7.16,7.17,19200^m$ 01/02/1991,0941,7.19,7.19,7.19,7.19,200000^m$ 01/02/1991,0956,7.19,7.19,7.19,7.19,8800^m$ 01/02/1991,0957,7.20,7.20,7.20,7.20,13600^m$ 01/02/1991,0958,7.22,7.22,7.22,7.22,5600^m$ 01/02/1991,1003,7.22,7.23,7.22,7.23,8000^m$ 01/02/1991,1006,7.23,7.23,7.23,7.23,10400^m$

using awk can do:

awk -f, '$1=="01/02/2002"{p=1} $1=="01/08/2008"{p=2} $1!="01/08/2008" && p==2{exit} p' dataset.txt

bash text awk sed grep

No comments:

Post a Comment