how to check missing files?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to check missing files?
# 1  
Old 04-26-2008
how to check missing files?

I have 50 files in this directory (/home/unixnewbie/wklyfiles) namely:
statistics.1
statistics.2
statistics.3
statistics.4
statistics.5
statistics.6
statistics.7
statistics.8
statistics.9
statistics.10
....
statistics.20
....
statistics.50

How can i determine if ever there will be some files missing in there?
And how to know which exact files are those? Like for example, the statistics.5, statistics.9, statistics.20 and statistics.35 files are missing that week.

Thanks in advance.
# 2  
Old 04-26-2008
Create a list of all files which should be there, and compare.

Code:
perl -le 'for my $i (1..50) { print "missing: statistics.$i" unless -f "statistics.$i" }'

I meant for the Perl script to just generate the list, but it turned out to be so easy to do it all in Perl. Sorry, folks (-:

Just to illustrate my original proposal, here's another approach, using just simple shell commands:

Code:
yes . | head -50 | nl | sed -e 's/^ *\([1-9][0-9]*\) .*/statistics.\1/' >list
ls -rt statistics.* | diff list -

The file "list" is generated with the nl utility to have line numbers, and the file name prefix is added using sed. (This came out pretty tortured -- it would arguably be a lot easier with awk, but let's just say that using scripting languages would be cheating, okay?) Then we compare that list against the actual directory listing. This requires that your diff accepts "-" to mean "read the other file from standard input;" otherwise, you'll need to use two temporary files. (Don't forget to remove them when you're done.)

Last edited by era; 04-26-2008 at 01:34 PM.. Reason: Alternate approach, just for illustration
# 3  
Old 04-26-2008
Wow great, thanks a lot era! Smilie
Hope you don't mind a follow-up question, what if i want to store in a file all those existing statistics files? And just just put spaces on those missing files? Smilie
Example
==>
statistics.1;statistics.2;statistics.3;statistics.4;<space>;statistics.6;......statistics.19; <space>;statistics.21;......statistics.34;<space>;....statistics.50

Hmmm..
# 4  
Old 04-26-2008
Code:
perl -e 'for my $i (1..50) { my $f = "statistics.$i"; print ($i > 1 ? ";" : ""), (-f "$f" ? "$f" : " ") }
print "\n"'

The "if ? then : else" construct is a bit hard to sort out at first, but makes for pretty straightforward logic once you understand how it works.
# 5  
Old 04-26-2008
Another bash solution:

Code:
#!/bin/bash

for nbr in $(seq 50); do
    if [ ! -e "statistics.$nbr" ]; then echo "statistics.$nbr is missing"; fi
done

For the one-liners fanatics:
Code:
for nbr in $(seq 50); do if [ ! -e "statistics.$nbr" ]; then echo "statistics.$nbr is missing"; fi; done

# 6  
Old 04-26-2008
Proper fanatics would perhaps prefer

Code:
for n in $(seq 50); do [ -e statistics.$n ] || echo statistics.$n is missing; done

seq is not universal, that's why I started out with Perl; but if you have it, it's excellent for this type of job.
# 7  
Old 04-27-2008
Unfortunately, the seq doesnt work Smilie
seq: command not found

Any other unix scripting lines possible?
Btw, i'm using ksh. Thanks!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash to check directory and create missing folder from file

In the below bash I am trying to ensure that all folders (represented by $folders) in a given directory are created. In the file f1 the trimmed folder will be there somewhere (will be multiple trimmed folders). When that trimmed folder is found (represented by $S5) the the contents of $2 printed... (19 Replies)
Discussion started by: cmccabe
19 Replies

2. Shell Programming and Scripting

Check/print missing number in a consecutive range and remove duplicate numbers

Hi, In an ideal scenario, I will have a listing of db transaction log that gets copied to a DR site and if I have them all, they will be numbered consecutively like below. 1_79811_01234567.arc 1_79812_01234567.arc 1_79813_01234567.arc 1_79814_01234567.arc 1_79815_01234567.arc... (3 Replies)
Discussion started by: newbie_01
3 Replies

3. Shell Programming and Scripting

To check the missing file based on sequence number.

Hi All, I have a requirement that i need to list only the missing sequences with a unix script. For Example: Input: FILE_001.txt FILE_002.txt FILE_005.txt FILE_006.txt FILE_008.txt FILE_009.txt FILE_010.txt FILE_014.txt Output: FILE_003.txt FILE_004.txt FILE_007.txt FILE_011.txt... (5 Replies)
Discussion started by: Arun1992
5 Replies

4. Shell Programming and Scripting

How to check missing sequence?

I want to listed files every hours and check the missing sequence my file format is CV.020220131430.txt CV.020220131440.txt CV.020220131450.txt CV.ddmmyyhhm.txt how to check if i have missing files in sequence .. thanks (3 Replies)
Discussion started by: before4
3 Replies

5. Shell Programming and Scripting

How to take the missing files

Hi all , am using unix ksh I have a lots of files in /prb directory in the format as .. .. .. .. MMRR0607.DAT_2012 MMRR0707.DAT_2012 MMRR0907.DAT_2012 MMRR1107.DAT_2012 ... .. MMRR3107.DAT_2012 MMRR0208.DAT_2012 .. I need the output as Missing files are:- MMRR0807.DAT_2012 (note... (4 Replies)
Discussion started by: Venkatesh1
4 Replies

6. Shell Programming and Scripting

Perl code to check date and check files in particular dir

Hi Experts, I am checking how to get day in Perl. If it is “Monday” I need to process…below is the pseudo code. Can you please prove the code for below condition. if (today=="Monday" ) { while (current_time LESS THAN 9:01 AM) ... (1 Reply)
Discussion started by: ajaypatil_am
1 Replies

7. Shell Programming and Scripting

Compare 2 folders to find several missing files among huge amounts of files.

Hi, all: I've got two folders, say, "folder1" and "folder2". Under each, there are thousands of files. It's quite obvious that there are some files missing in each. I just would like to find them. I believe this can be done by "diff" command. However, if I change the above question a... (1 Reply)
Discussion started by: jiapei100
1 Replies

8. Shell Programming and Scripting

check if multiple directories exist else create missing directories

Hi , I 'm trying to check if multiple directories exist on a server, if not create the missing ones and print " creating missing directory. how to write this in a simple script, I have made my code complex if ; then taskStatus="Schema extract directory exists, checking if SQL,Count and... (7 Replies)
Discussion started by: ramky79
7 Replies

9. Shell Programming and Scripting

Check for files and log report if missing

Hi, I need a shell program that will prompt the user to input a dept name to the script. The script should then check a specific directory called ‘report' in the home directory of each member of that dept. If the report directory does not exist, or there are no contents in the directory,... (2 Replies)
Discussion started by: johnnyvlme
2 Replies

10. UNIX for Dummies Questions & Answers

files missing

a few of some live payroll files have been deleted / missing ... i've restored last nites backup ... what could be the possibilities of this strange occurance ... users have menus to work on and use these live files ... we run an aix box with a ksh shell. Where do I start ?? Thanks (4 Replies)
Discussion started by: cubicle^dweller
4 Replies
Login or Register to Ask a Question