Sponsored Content
Top Forums Shell Programming and Scripting Valid and invalid date in the file Post 302649485 by pravin27 on Thursday 31st of May 2012 11:53:45 AM
Old 05-31-2012
how about this ?
Code:
gawk  -F"|" '{
   if (match($4,/^((19|20)[0-9][0-9])(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[0-1])$/,a)) {
      year=a[1]+0
      mon=a[3]+0
      day=a[4]+0
        if (day ==  31 && (mon == 4 ||  mon == 6 || mon == 9 || mon == 11))
        print $0 >  "valid.txt"
        else if (day >=  30 && mon == 2)
        print $0 >  "valid.txt"
        else if (mon == 2 && day ==  29 && ! (  year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)))
        print $0 > "valid.txt"
        else
        print $0 > "valid.txt"
   }  else { print $0 > "invalid.txt" }
   }' input_file

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check valid records in really big file with one commend..

Hi, I have a 5 gig file, no record terminators, field terminators are newline. The record length is 768 and I would like to check that every 768th byte is a newline and print out the byte position if it isn't. I would like to do this going either forward or backwards with one command if... (3 Replies)
Discussion started by: vtischuk@yahoo.
3 Replies

2. Shell Programming and Scripting

date: invalid date `19010101'

why date -d "19010101" gets error " date: invalid date `19010101' " but date -d "19020101" is fine? Any approach to fix that? Thank you. (8 Replies)
Discussion started by: freizl
8 Replies

3. Shell Programming and Scripting

Need to get next valid date from date string

Hi, I am passing date string of format 'YYYYMMDD' to a ksh script. Will I be able to get next valid date from the passed in string. Example I pass '20100228' to the shell script, Is there a reverse date command to get '20100301' .i.e to convert '20100228' to date and get next date.... (5 Replies)
Discussion started by: bittoo
5 Replies

4. Shell Programming and Scripting

Valid date checking in the file

File contian below data... 20111101 20111102 20111131 I am new to unix and per scirpt... First two records are valid and last record is invalid,how to get the valid records... Please help me unix or perl script. :wall: Thanks, Murali (5 Replies)
Discussion started by: muralikri
5 Replies

5. Shell Programming and Scripting

date: invalid date

Hi All, I am trying to convert the date of all files under a directory in seconds, PFB script a=`ls -lrt | wc -l` echo $a for ((i=1;i<=$a;i++)) do A=`ls -lrt | awk '{print $6,$7,$8}' | head -$i | tail -1` echo ${A} date -d '${A}' +%s donebut I am getting error date: invalid date... (1 Reply)
Discussion started by: Jcpratap
1 Replies

6. UNIX for Dummies Questions & Answers

How to check if file contains valid strings?

Hi All, I am a newbie...I would like to have a function which ll check if a file contains valid strings before "=" operator. Just to give you my requirement: assume my file has content: hello= gsdgsd sfdsg sgdsg sgdgdg world= gggg hhhh iiiii xxxx= pppp ppppp pppp my... (5 Replies)
Discussion started by: rtagarra
5 Replies

7. Shell Programming and Scripting

How to loop read command and print valid invalid states.?

My question is how would i loop a read command to keep asking the user for input and eventually print the no. of valid invalid inputs after a specified control input typed i.e. (-3). (1 Reply)
Discussion started by: Flowoftruth
1 Replies

8. UNIX for Advanced & Expert Users

Invalid date

Hi, I have a function to calculate "yesterday" in format YYYYMMDD: desa_ev9 # date +"%Y%m%d" --date "-1 day 20180701" 20180630 desa_ev9 # date +"%Y%m%d" --date "-1 day 20180720" 20180719 desa_ev9 # date +"%Y%m%d" --date "-1 day 20190101" 20181231 desa_ev9 # date +"%Y%m%d" --date "-1... (2 Replies)
Discussion started by: augreen
2 Replies

9. 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

10. Shell Programming and Scripting

Valid separator in time and date format

Hello. I can use any particular (stupid or not) format when using bash date command. Example : ~> date --date "now" '+%Y-%m-%d %H!%M!%S' 2019-06-03 12!55!33or ~> date --date "now" '+%Y£%m£%d %H¤%M¤%S' 2019£06£03 12¤57¤36 or ~> date --date "now" '+%Y-%m-%d %H-%M-%S' 2019-06-03 12-58-51 ... (4 Replies)
Discussion started by: jcdole
4 Replies
CTIME(2)							System Calls Manual							  CTIME(2)

NAME
ctime, localtime, gmtime, asctime, timezone - convert date and time to ASCII SYNOPSIS
#include <u.h> #include <libc.h> char* ctime(long clock) Tm* localtime(long clock) Tm* gmtime(long clock) char* asctime(Tm *tm) /env/timezone DESCRIPTION
Ctime converts a time clock such as returned by time(2) into ASCII (sic) and returns a pointer to a 30-byte string in the following form. All the fields have constant width. Wed Aug 5 01:07:47 EST 1973 Localtime and gmtime return pointers to structures containing the broken-down time. Localtime corrects for the time zone and possible day- light savings time; gmtime converts directly to GMT. Asctime converts a broken-down time to ASCII and returns a pointer to a 30-byte string. typedef struct { int sec; /* seconds (range 0..59) */ int min; /* minutes (0..59) */ int hour; /* hours (0..23) */ int mday; /* day of the month (1..31) */ int mon; /* month of the year (0..11) */ int year; /* year A.D. - 1900 */ int wday; /* day of week (0..6, Sunday = 0) */ int yday; /* day of year (0..365) */ char zone[4]; /* time zone name */ } Tm; When local time is first requested, the program consults the timezone environment variable to determine the time zone and converts accord- ingly. (This variable is set at system boot time by init(8).) The timezone variable contains the normal time zone name and its difference from GMT in seconds followed by an alternate (daylight) time zone name and its difference followed by a newline. The remainder is a list of pairs of times (seconds past the start of 1970, in the first time zone) when the alternate time zone applies. For example: EST -18000 EDT -14400 9943200 25664400 41392800 57718800 ... Greenwich Mean Time is represented by GMT 0 SOURCE
/sys/src/libc/9sys SEE ALSO
date(1), time(2), init(8) BUGS
The return values point to static data whose content is overwritten by each call. Daylight Savings Time is ``normal'' in the Southern hemisphere. These routines are not equipped to handle non-ASCII text, and are provincial anyway. CTIME(2)
All times are GMT -4. The time now is 12:56 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy