Finding Files By Name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Finding Files By Name
# 1  
Old 04-10-2011
Finding Files By Name

Finding Files - I am learning more about scripting each day but I am having a hard time figuring out how to write a script to pick particular files from a list ls command. Basically I have several hundred files with the file name being: AAB110321015704.raw or BBA110321015704.raw WHERE the numbers correspond with the date. In this example 11=2011 03=March 21=Day 21st HH=01 MM=57 SEC=04 I would like to write a script that will ask the user for the YYMMDD a start time and End time then it will find all the files based on the “file name” that are between that time. I have looked at using the -newer based on the actual file time written however the datetime is in central time and the file name is in zulu. It is this zulu time that I want represented in the file name. In my example if I was prompted and entered 110321 with a start time of 0100 and a end date of 110322 time of 0100 the 2 files above would be listed. Any recommendations how to do this?
# 2  
Old 04-10-2011
Are all the candidate files in the same directory? Or are they scattered throughout a hierarchy?
# 3  
Old 04-10-2011
Yes they are all in the same directory.
# 4  
Old 04-10-2011
Try running this script in the directory containing the files:
Code:
#!/bin/bash
echo -n "Enter start date: "
read d
echo -n "Enter start time: "
read t
a="$d${t}00"
echo -n "Enter end date: "
read d
echo -n "Enter end time: "
read t
b="$d${t}00"
ls -l | awk -va=$a -vb=$b 'NR>1{x=$9;gsub("[^0-9]","",x);if (x>a&&x<b){print}}'

If you want just the file names:
Code:
#!/bin/bash
echo -n "Enter start date: "
read d
echo -n "Enter start time: "
read t
a="$d${t}00"
echo -n "Enter end date: "
read d
echo -n "Enter end time: "
read t
b="$d${t}00"
ls | awk -va=$a -vb=$b '{x=$0;gsub("[^0-9]","",x);if (x>a&&x<b){print}}'

# 5  
Old 04-10-2011
Thanks I will try this.
# 6  
Old 04-10-2011
Code:
#!/bin/sh

printf '%s' 'Begin searching at (enter timestamp in YYMMDDHHMMSS format): ' >&2
read ts1
printf '%s' 'Stop searching at (enter timestamp in YYMMDDHHMMSS format): ' >&2
read ts2

for f in *.raw; do
        ts=${f%.raw}
        ts=${ts##*[!0-9]}
        expr X$ts \>= X$ts1 \& X$ts \<= X$ts2 >/dev/null && printf '%s\n' "$f"
done

Prompts are written to stderr. Should you choose, you can redirect them to /dev/null, feed the timestamps from a file or a pipe, and use the script in a pipeline.

Not knowing which shell you're using, I chose to use the incredibly cumbersome expr utility. While its syntax clashes with the shell, requiring lots of quoting, it's widely available. Depending on your shell, it could possibly be replaced with test/[. The X's are there to force string comparison, since on some platform integers may not be large enough.

Assumption: The portion of the filename that precedes the timestamp never ends with a decimal digit.

Regards,
Alister

Last edited by alister; 04-10-2011 at 05:56 PM..
# 7  
Old 04-10-2011
I will be using bash or ksh. Yes the portion of the filename that precedes never ends with a decimal. Thanks for your assistance. I am going to read and learn more about awk & expr
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Finding files with wc -l results = 1 then moving the files to another folder

Hi guys can you please help me with a script to find files with one row/1 line of content then move the file to another directory my script below runs but nothing happens to the files....Alternatively Ca I get a script to find the *.csv files with "wc -1" results = 1 then create a list of those... (5 Replies)
Discussion started by: Dj Moi
5 Replies

2. Shell Programming and Scripting

need help for finding files

Hi, I am trying to find two files in a if condition to do a task Please find below the script that i have built while read line do filename = $line if && ]; then cp /tmp/$filename.dat /sftp/$filename.dat else cat $filename "no trg file associated" >>... (4 Replies)
Discussion started by: ramkiran77
4 Replies

3. Shell Programming and Scripting

Need Help in Finding Files ::

Hi All , i am in progress of creating a script which should find a file a.txt , in a particular root directory . This should actually Search all the Sub directories and copy those files and FTP it to a server . Need a Input how to Proceed on this Thankyou guys (6 Replies)
Discussion started by: raghav1982
6 Replies

4. Shell Programming and Scripting

finding in files

hi, can we re-write the following command in a way so that we dont need to use and external commands ( grep ) to save calls to fork() and exec()... find . -name "*.mk" | xargs grep -i libSplitMove.a thanks Vivek (1 Reply)
Discussion started by: vivek.gkp
1 Replies

5. Shell Programming and Scripting

finding files

Hi guys just wondering if there is a way to scan the whoel file system and find files that have not been used over a number of days, using the script (5 Replies)
Discussion started by: musicmancanora
5 Replies

6. Shell Programming and Scripting

Finding files

Hello guys, Please your help, i need to find all the files writed in the last 5 minutes, but without create another file using touch (like im doing right now): I am doing this: anio=`date +%Y` mes=`date +%m` dia=`date +%d` hora=`date +%H` minuto2=`date +%M` minuto=`expr... (1 Reply)
Discussion started by: lestat_ecuador
1 Replies

7. Shell Programming and Scripting

Help with finding files

Ok, here it is: I have a system that logs certain files every day. Every time a new day dawns, the system will create a folder with the name that is respective to the day's date (12-06-07) and start putting new files in that folder. I have another system that needs these files. I am going to:... (1 Reply)
Discussion started by: bbbngowc
1 Replies

8. Shell Programming and Scripting

finding duplicate files by size and finding pattern matching and its count

Hi, I have a challenging task,in which i have to find the duplicate files by its name and size,then i need to take anyone of the file.Then i need to open the file and find for more than one pattern and count of that pattern. Note:These are the samples of two files,but i can have more... (2 Replies)
Discussion started by: jerome Sukumar
2 Replies

9. Solaris

finding files

Hi, I am trying to find all files ending in a particular file extension, ie all files ending with .pdf find / -name *.pdf But this doesnt seem to work, ie it doesnt find the files, is there a better way of doing this? I am using solaris 9 (4 Replies)
Discussion started by: frustrated1
4 Replies

10. UNIX for Dummies Questions & Answers

finding files

I need to write a script that will find all of the files in my current directory that contain a html extension that contains a URL with my user ID as a command line argument and have yhe script display the names of the files selected along with a count of the files found. I'm totally lost ???? Any... (4 Replies)
Discussion started by: jseiple
4 Replies
Login or Register to Ask a Question