I have to check whether last line of the file has time stamp or not.
File.txt
Code:
cong = 0
This formats a date and time into the given strftime() format = 09
Dates can be passed to Smarty as unix timestamps = 56789
mysql timestamps or any string made up =98
Since Smarty-2.6.10 numeric values passed to 46 date_format are always
si.tr_GBL_KIL.lastprocessedTs = 2014-09-10T21:15:25.521423
Specifying a field separator of / when the input you're processing doesn't contain that character means that the entire line (up to the trailing newline character) will be field 1. So the length of $1 in every input line in this format will be 10; not 4.
END is a special condition that cannot be combined with any other condition. The actions in an END condition are performed after you have hit EOF on every input file fed into that invocation of awk.
If you want to process the last field on the last line of your input file, that would be something like:
Code:
awk '
{ dts = $NF }
END { n = split(dts, d, /[-T:.]/)
# Verify that n==7 and d[1] through d[7] meet your requirements
}' file
If you want to verify that the last field on any line containing lastprocessedTS meets your requirements, that would be something like:
Code:
awk '
/lastprocessedTS/ { n = split($NF, d, /[-T:.]/)
# Verify that n==7 and d[1] through d[7] meet your requirements
}' file
This User Gave Thanks to Don Cragun For This Post:
awk 'function error(v){
print "invalid "v ; exit
}
BEGIN{
month="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
split(month,MON,/ /)
}
END{
if(/lastprocessedTs/)
{
split($NF,D,/[-:T]/)
year = D[1]
mon = D[2]
day = D[3]
hour = D[4]
min = D[5]
sec = D[6]
# put your condition here to validate date like this
# write your condition for time also...this is just a hint
if( !( day >= 1 && day <=31 ) )
{
error("Maximum 31 days ")
}
if(! (mon >=1 && mon <=12 ) )
{
error("Bad Month range 1-12")
}
if(!length(year))
{
error("Year length should be 4 char")
}
if (day == 31 && (mon == 4 || mon == 6 || mon == 9 || mon == 11))
{
error(MON[mon]" can have maximum 30 days")
}
if (day >= 30 && mon == 2)
{
error("Febrary maximum 29 days")
}
if (mon == 2 && day == 29 && ! ( year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)))
{
error(year " is Not leap year")
}
# if none of the above are true then your date and time is valid...
print "good"
}
}
' file
Last edited by Akshay Hegde; 09-10-2014 at 03:13 AM..
This User Gave Thanks to Akshay Hegde For This Post:
Other than the above check could you please let know what could I check on "d[1] through d[7] meet your requirements"?
Only you know what your requirements are for the various date fields other than the tests you had for $1 through $3 would now be tests for d[1] through d[3]. If you want more comprehensive tests, Akshay's suggestion seems to be good starting point.
Note that you want n == 7; not $n = 7(which sets the sub-seconds field to 7 and prints T rather than printing T if there are 7 subfields and F otherwise.
I have a file that is created via a perl script where the file is named like so: 01-07-2016_10:17:08. I am running a shell script that needs to take this file and print it. I can capture the date portion fine, but I am unsure how to capture the time stamp, since there will be a difference from what... (1 Reply)
Hi Friends,
I have the following logfile.
i want to make a script for calculate time by time2 - time1
1600266278|random|1|2014-09-19 02:08:56.024|2014-09-19 02:08:59.398|A|B|ROOM|Num0208559970111101788|1|dog|dos
1600266200|random|4|2014-09-19 02:08:06.572|2014-09-19... (2 Replies)
I want to check given time stamp is between the given time stamp or not. I am using AIX.
YYYYMMDDHHMMSS
abc.csv
START TIME, END TIME
20130209018000,20130509022000
20120209018000,20130509022000
20120209018000,20130509022000
Script will check given time stamp is between above two range or... (2 Replies)
Hi,
I need help to read file in a directory on basis of time stamp.
e.g. If file access in last 2 minutes it should not be copy to remote directory.
Below is my script.
#!/bin/ksh
DATE=`date +"%Y-%m-%d_%H%M"`
SEPARATER=" "
exec < out_interfaces.cfg
while read source_path... (10 Replies)
Hi All,
I am facing small problem.
i want to print file time stamp on which date file has placed in the server.
i have given some code but its not giving the year.
any help appreciated.
regards
rajesh. (4 Replies)
Hi,
As i know , we can change the time stamp of a file by touch command, i did change in a file and it is looking as given
# ls -l abcd
-rw-r--r-- 1 batsoqa sicusers 0 Feb 17 2010 abcd
actually i want to see the output like this
-rw-r--r-- 1 batsoqa sicusers ... (3 Replies)
can we change the timestamp of a file to old date.
-rwxrwxrwx 1 root other 330 Jul 1 16:03 abc.txt
it shows creation time is 16.03 can i change it to previous time
:) (2 Replies)
i want to copy a filea.dat to a file name in the format
of filea_yyyymmdd_hhmi.dat
using something like DTSTAMP=$(date "+%Y%m%d"),
which puts it in format filea_yyyymmdd.dat (5 Replies)
Hi,
Sounds a simple request but I also need (would like) to gather the seconds too. I'm not even sure if this is held. I would think it is, somewhere??!!?!
I belive that stat would/could work but I don't do C (we'll not yet).
Is there any comamnd line util I can use?
SunOS.
Cheers... (7 Replies)
I have to capture the creation date and time stamp for a file. The ls command doesn't list all the required information. I need year, month, day, hour, minute and second.
Any ideas... (1 Reply)