![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| UNIX for Advanced & Expert Users Expert-to-Expert. Learn advanced UNIX, UNIX commands, Linux, Operating Systems, System Administration, Programming, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Find and store files based on FileName and Modified Time | edisonantus | UNIX for Advanced & Expert Users | 2 | 02-19-2008 02:25 PM |
| find files with specific date and time | itik | AIX | 3 | 01-18-2008 01:21 PM |
| Convert DATE string to a formatted text | osramos | Shell Programming and Scripting | 6 | 10-10-2007 05:31 AM |
| Insert date/time within a filename | cooperman | UNIX for Dummies Questions & Answers | 7 | 11-07-2005 12:29 PM |
| Renaming files to have date/time in filename | wayneb | UNIX for Dummies Questions & Answers | 5 | 01-19-2005 10:49 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
find formatted filename with date time
Hi,
I operate and use HF radars along the California coast for ocean surface currents. The devices use Mac OS as the control and logging software. The software generates thousands of files a week and while I've used PERL in the past to solve the problems of finding files I come to realize some inherent inefficiencies with this type of search method. Ultimately I'd like to find files using the unix find command, however, my knowledge of regular expressions is in its infancy and I'm learning. So in my pursuit of this knowledge I'm turning to this forum to hopefully give me some hints. The files fortunately are all fairly standardize -- i.e. the filename format is: TYPE_SITE_[YY|YYYY]_MO_MD_[HHMM|HHMMSS].[xx|xxx] where, TYPE is a three or four character string depicting the type of data (CSS, CSQ, RDLi, STAT, etc.) SITE is a four character string depicting the name of the radar site (GCYN, NPGS, BML1, etc.) YYYY is a two or four digit year MO is a two digit month MD is a two digit month day HH is a two digit hour MM is a two digit minute SS is a two digit second xxx is a two or three character string for a file extension The main difficulty I have is in crossing years -- i.e. if I wanted to say find CSS files for site BML1 between Dec 29th 2007 and Jan. 2nd 2008. Any advice / pointers on how to attack this using the find or grep or egrep commands would be greatly appreciated. Thanks, dpath2o |
|
||||
|
No unfortunately not ... File creation, access, and modification times can and often differ from the files stat ... In fact ultimately I should search for the "%TimeStamp: ..." string inside the text files to be most accurate, but once I figure this regex I think I'll be able to apply it to awk or maybe sed to read this line inside the file ... Long answer to your short question!
|
|
||||
|
assuming all files end in *.xtx . Using GNUawk
Code:
ls *.xtx | awk 'BEGIN { FS="[:_]"
printf "Enter from date [yyyy mm dd]: "
getline startymd < "/dev/tty"
printf "Enter to date [yyyy mm dd]: "
getline endymd < "/dev/tty"
s=startymd " 00 00 00"
stdate = mktime(s)
e=endymd " 00 00 00"
edate = mktime(e)
}
{
find = $3" "$4" "$5" 00 00 00"
founddate=mktime(find)
if ( (founddate > stdate) && (founddate < edate) ) {
print "Found file: " $0
}
}'
Code:
# ls -1 *xtx CSQ_NPGS_2008_01_22_120012.xtx CSS_GCYN_2008_01_18_130022.xtx STAT_BML1_2007_11_22_110012.xtx STAT_BML1_2007_12_22_110012.xtx # ./test.sh Enter from date [yyyy mm dd]: 2007 12 11 Enter to date [yyyy mm dd]: 2008 01 18 Found file: STAT_BML1_2007_12_22_110012.xtx |
![]() |
| Bookmarks |
| Tags |
| grep or, mtime, perl, perl regex, regex, regular expressions, unix commands |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|