get all entries after particular date !!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting get all entries after particular date !!
# 1  
Old 11-22-2007
Error get all entries after particular date !!

hi all
i have a file in which first column has date in (yyyy-mm-dd) format and rest of the column has file information.
i want to write a program in such way that when i specify date i will get entries from that date till end of file.and there can be more than one entries for particular date.

in short i want to split file in 2 parts one part will have entries till date i have mentioned ( without date i have mentioned ) and other will have all entries from date i have mentioned till end of file. i am writing code in perl/shell script.

i am not getting how to do this till now..please suggest how this can be done ??

here is my file :
Code:
2007-10-18    abcs.sql   1.1  
2007-10-18    adah.sh    1.0
2007-10-18    hhsh.pl     1.9
2007-10-19    hhhh.pl     1.9
2007-10-20    nnnn.sql    1.0
2007-10-20    zzzz.COB   1.147
2007-10-20    rreerf.sh    1.5
2007-10-20    sdigj.sh      1.6
2007-10-21    sdhgfi.sh    1.7
2007-10-21    dghidf.sh    1.8

if i specify 2007-10-19 then i should get all entries from this date till end of file.
# 2  
Old 11-22-2007
Try:
Code:
>fecha=2007-10-19

> awk -v valor=${fecha} 'BEGIN {gsub(/-/,"",valor)}
        { 
        h=$1
        gsub(/-/,"",h)
        if ( h >= valor )
                print
}' file
2007-10-19    hhhh.pl     1.9
2007-10-20    nnnn.sql    1.0
2007-10-20    zzzz.COB   1.147
2007-10-20    rreerf.sh    1.5
2007-10-20    sdigj.sh      1.6
2007-10-21    sdhgfi.sh    1.7
2007-10-21    dghidf.sh    1.8

# 3  
Old 11-22-2007
Is the data ordered by date?
If yes (assuming Awk is acceptable):
Code:
awk '$1>dt' dt="2007-10-19" filename

If not:

Code:
awk 'f;$1==dt{f=1}' dt="2007-10-19" filename


Last edited by radoulov; 11-22-2007 at 02:31 PM..
# 4  
Old 11-22-2007
If you want to use split, try the following:

Code:
#!/bin/sh

sed -e '1s/2007\-10\-20/XXXX\-10\-20/;t' -e '1,/2007\-10\-20/s//XXXX\-10\-20/'  yourfile > s1
split -p "XXXX-10-20" s1 sout
rm s1
sed '1s/^XXXX/2007/g' soutab

Output is in files soutaa and soutab
# 5  
Old 11-23-2007
thanx got what i wanted used one line awk to do this thanx radoulov

ninad
# 6  
Old 11-23-2007
Hi radoulov,

Can you please explain me wat actually happens here? Wat does 'f' mean here?

awk 'f;$1==dt{f=1}' dt="2007-10-19" filename

Thanks in advance,
Chella
# 7  
Old 11-23-2007
Quote:
Originally Posted by chella
Hi radoulov,

Can you please explain me wat actually happens here? Wat does 'f' mean here?

Code:
awk 'f;$1==dt{f=1}' dt="2007-10-19" filename

f is a variable, its name is arbitrary (it can be any valid variable name).
In Awk uninitialized variables have the numeric value zero.
When the first filed of the current record matches our pattern ($1==dt),
we set f to 1 (or any other number != 0 - for Awk 0 and null mean false,
all others mean true). We check every record
(first check, then set, so the record that matches
is not printed), we print the records once the variable is set to 1 (true).

It goes like this:

Code:
dt="2007-10-19"

record: 2007-10-18 
code: f 
action: checks f is not 0 -> f==0 (uninitialized yet) -> do nothing
code: $1==dt{f=1}
action: $1!=dt -> do nothing

record: 2007-10-19
code: f
action: checks f is not 0 -> f==0 (uninitialized yet) -> do nothing
code: $1==dt{f=1}
action: $1==dt -> set f to 1(true) --> initialized here!

record: 2007-10-20
code: f
action: checks f is not 0 -> f==1 -> default action: print the current record
code: $1==dt{f=1}
action: $1!=dt -> do nothing (even if $1==dt, we will set again f to 1,
but it doesn't matter :)

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Answers to Frequently Asked Questions

Compare date in .txt with system date and remove if it's lesser than system date

I m working on shell scripting and I m stuck where in my .txt file there is column as expiry date and I need to compare that date with system date and need to remove all the rows where expiry date is less than system date and create a new .txt with update. (1 Reply)
Discussion started by: Stuti
1 Replies

2. UNIX for Beginners Questions & Answers

Compare date in .txt with system date and remove if it's lesser than system date

Can someone help me with the code wherein there is a file f1.txt with different column and 34 column have expiry date and I need to get that and compare with system date and if expiry date is <system date remove those rows and other rows should be moved to new file f2.txt . I don't want to delete... (2 Replies)
Discussion started by: Stuti
2 Replies

3. Shell Programming and Scripting

Date: invalid date trying to set Linux date in specific format

i try to set linux date & time in specific format but it keep giving me error Example : date "+%d-%m-%C%y %H:%M:%S" -d "19-01-2017 00:05:01" or date +"%d-%m-%C%y %H:%M:%S" -d "19-01-2017 00:05:01" keep giving me this error : date: invalid date ‘19-01-2017 00:05:01' Please use CODE tags... (7 Replies)
Discussion started by: umen
7 Replies

4. Shell Programming and Scripting

Get first and last time entries for a given date in CSV file

CSV date sorted file has multiple entries for most dates. Need to eliminate all but the first and last entries of each date, being the start and end times for that day. 2009-11-20,23:57:46 2009-11-20,23:58:46 2009-11-20,23:59:46 2009-11-21,00:00:45 2009-11-21,00:01:46 2009-11-21,00:02:45... (2 Replies)
Discussion started by: mdennis6
2 Replies

5. Shell Programming and Scripting

Converting a date to friday date and finding Min/Max date

Dear all, I have 2 questions. I have a file with many rows which has date of the format YYYYMMDD. 1. I need to change the date to that weeks friday date(Ex: 20120716(monday) to 20120720). Satuday/Sunday has to be changed to next week friday date too. 2. After converting the date to... (10 Replies)
Discussion started by: 2001.arun
10 Replies

6. Shell Programming and Scripting

Extracting log entries from a date onwards

One of the log file looks like entries as below. Wed Apr 6 14:51:18 2011 FAIL LOGIN: Client "9.191.21.54" Wed Apr 6 14:52:53 2011 CONNECT: Client "9.191.21.54" Wed Apr 6 14:52:54 2011 OK LOGIN: Client "9.191.21.54" Wed Apr 6 14:55:10 2011 CONNECT: Client "9.191.21.54" Wed Apr 6... (2 Replies)
Discussion started by: rijeshpp
2 Replies

7. Shell Programming and Scripting

shell script to sort entries in a file by date and time

Hello All, Need a shell script to sort entries in a file by date and time. Below are the entries in the file, i need to sort it first by the date and then time Note :- Date is in MM/DD/YY format and date comes as the 6th & time comes on 7th coloumns respectively. 150 pbnawldb001-b... (10 Replies)
Discussion started by: ajiwww
10 Replies

8. Shell Programming and Scripting

Delete old date entries from a file

Hello, I have following log file. alog.log Oct 8 xxxxx Oct 9 xxxxx Oct 10 xxxxx Nov 8 xxxxx Nov 8 xxxxx . . . Jan 8 xxxxx I need to delete all the lines which are having date entries older than 60 days. So If the current date is Jan 9 2011 then it should delete all the lines upto... (3 Replies)
Discussion started by: Ravin83
3 Replies

9. Shell Programming and Scripting

Extracting data from two date entries

Hi again: I have this file: "2010-11-1 11:50:00",40894,13.38,17.24,12.92,13.23,"2010-11-14 11:43:02",12.56,"2010-11-14 11:46:02",22.68,20.95,"2010-11-14 11:44:03",2.144,2.078,190.4,14.27,6.293,"2010-11-14 ... (2 Replies)
Discussion started by: iga3725
2 Replies

10. Shell Programming and Scripting

Date One Week Ago From Given Date, Not From Current Date

Hi all, I've used various scripts in the past to work out the date last week from the current date, however I now have a need to work out the date 1 week from a given date. So for example, if I have a date of the 23rd July 2010, I would like a script that can work out that one week back was... (4 Replies)
Discussion started by: Donkey25
4 Replies
Login or Register to Ask a Question