Find the missing sequence


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find the missing sequence
# 8  
Old 08-02-2014
Hi sagar_1986,
Note that we are ignoring the second issue you raised in message #3 in this thread. We don't need to discuss one issue in two threads; it makes it much too hard for the volunteers trying to help you if you discuss the same issue in two places.

Note that SriniShoo's script will not print the "00" line if it isn't present in the input file. Assuming that the input file is sorted by hour, this seems to do what SriniShoo was trying to do:
Code:
awk -F'[.]' '
NR == 1 {
	t = substr($1,5)
	a = 0
}
{	b = substr($1, 3, 2)
	for(i = a; i < b + 0; i++)
		printf("%02d%d\n", i, t)
	a = b + 1
}
END {	for(i = a; i <= 23; i++)
		printf("%02d%d\n", i, t)
}' file

If I were going to try this using bharat1211's approach (which would be required if the input is not sorted), I would simplify it to something more like:
Code:
awk -F'[.]' '
FNR == 1 {
	t = substr($1, 5)
}
{	h[substr($1, 3, 2)]
}
END {	for(i = 0; i < 24; i++)
		if(!((hour = sprintf("%02d", i)) in h))
			print hour t
}' file

If file contains:
Code:
df01231587.dat
df03231587.dat
df04231587.dat
df06231587.dat 
df07231587.dat 
df08231587.dat 
df09231587.dat 
df10231587.dat 
df11231587.dat 
df12231587.dat 
df13231587.dat 
df14231587.dat 
df16231587.dat
df17231587.dat 
df18231587.dat 
df19231587.dat 
df22231587.dat

both of these scripts produce the output:
Code:
00231587
02231587
05231587
15231587
20231587
21231587
23231587

For any readers who want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk.
# 9  
Old 08-26-2014
Dear Don Cragun,

Thank you very much for your suggestion,but i would more likely to ask that how to get this output in same line and how to redirect output of print in file.
I want output like this
Quote:
00231587,02231587,05231587,15231587,20231587,21231587,23231587
which is redirected in file
i have tried this one but its not working

Code:
m_ch=` awk -F'[.]' '
  FNR == 1 {
  t = substr($1, 5)
  }
  {       h[substr($1, 3, 2)]
  }
  END {   for(i = 0; i < 24; i++)
  if(!((hour = sprintf("%02d",i "\c")) in h))
  print hour t
  }' file`

echo "$m_ch \c" >> files.txt

# 10  
Old 08-26-2014
Changing my awk script to:
Code:
awk -F'[.]' '
FNR == 1 {
	t = substr($1, 5)
}
{	h[substr($1, 3, 2)]
}
END {	for(i = 0; i < 24; i++)
		if(!((hour = sprintf("%02d", i)) in h))
			out = (out != "" ? out "," : "") hour t
	print out
}' file >> files.txt

adds the line:
Code:
00231587,02231587,05231587,15231587,20231587,21231587,23231587

to the end of the file named files.txt.
This User Gave Thanks to Don Cragun For This Post:
# 11  
Old 08-26-2014
Dear Don Cragun,

the script prints the output properly but the directed output (file) is not ok,the output of print is
Quote:
15260814,16260814,17260814,18260814,19260814,20260814,21260814,22260814,23260814
but in file the output is
Quote:
260814,260814,260814,260814,260814,260814,260814,260814,260814,260814,260814,260814,260814,260814,26 0814,15260814,16260814,17260814,18260814,19260814,20260814,21260814,22260814,23260814

i also want to share one thing that, i am running this query on number of Terminal equipment and the output captured is not appropriate the output is like this (attached herewith) as it should display only missing sequence

Plz help me out

Last edited by sagar_1986; 08-26-2014 at 07:52 AM..
# 12  
Old 08-26-2014
Your file is in DOS format. Convert to UNIX format first:
Code:
tr -d '\r' < file > newfile


Last edited by Scrutinizer; 08-26-2014 at 08:32 AM..
# 13  
Old 08-26-2014
Thanks Scrutinizer,
i got it......plz let me know this script will not work if not file is present ??...i.e. by any how my terminal equipment is not working then i will not get available files so i should get all fils as missing but as per my observation this script is not working if no data is available.
# 14  
Old 08-26-2014
You can test if the file is present:
Code:
if [ -f /path/to/file ]; then
  process file
fi

This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

2. Shell Programming and Scripting

How to find a missing file sequence using shell scripting?

Hey guys, I want the below files to be processed with the help of BASH so that i will be able to find the missing file names : PP01674520141228X.gz PP01674620141228X.gz PP01674820141228X.gz PP01674920141228X.gz PP01675420141228X.gz PP01675520141228X.gz PP01676020141228X.gz . . . .... (4 Replies)
Discussion started by: TANUJ
4 Replies

3. Shell Programming and Scripting

Identifying Missing File Sequence

Hi, I have a file which contains few columns and the first column has the file names, and I would like to identify the missing file sequence number form the file and would copy to another file. My files has data in below format. APKRISPSIN320131231201319_0983,1,54,125,... (5 Replies)
Discussion started by: rramkrishnas
5 Replies

4. Shell Programming and Scripting

Find missing sequence

Hi, I need to find out the missing sequence from a list. However the issue is there is not a fixed start and end, it depends on the generation of files. For eg, it might start with 4000 and end with 9000. Based on this, I need a script which greps the start and end sequence from the... (3 Replies)
Discussion started by: danish0909
3 Replies

5. Shell Programming and Scripting

Case script to get missing sequence among files

I want to use case statement to find the range of missing sequence in my directory which it has some few ( dat & DAT ) files my directory /home/arm/my_folder/20130428 contains : f01_201304280000.DAT f01_201304280001.DAT f01_201304280003.DAT f02_201304280000.dat f02_201304280002.dat... (2 Replies)
Discussion started by: arm
2 Replies

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

7. Shell Programming and Scripting

find common entries and match the number with long sequence and cut that sequence in output

Hi all, I have a file like this ID 3BP5L_HUMAN Reviewed; 393 AA. AC Q7L8J4; Q96FI5; Q9BQH8; Q9C0E3; DT 05-FEB-2008, integrated into UniProtKB/Swiss-Prot. DT 05-JUL-2004, sequence version 1. DT 05-SEP-2012, entry version 71. FT COILED 59 140 ... (1 Reply)
Discussion started by: manigrover
1 Replies

8. Shell Programming and Scripting

How to take the missing sequence Number?

Am using unix aix KSH... I have the files called MMRR0106.DAT MMRR0206.DAT MMRR0406.DAT MMRR0506.DAT MMRR0806.DAT .... ... MMRR3006.DAT MMRR0207.DAT These files are in one dircetory /venky ? I want the output like this ? Missing files are : MMRR0306.DAT MMRR0606.DAT... (7 Replies)
Discussion started by: Venkatesh1
7 Replies

9. Shell Programming and Scripting

print out missing files in a sequence

Hello all, I have several directories with a sequence of files like this IM-0001-0001.dcm IM-0001-0002.dcm IM-0001-0003.dcm IM-0001-0004.dcm IM-0001-0005.dcm I would like to print out the name of the file that is missing. I currently have the following ineffecient way to do this... (4 Replies)
Discussion started by: avatar_007
4 Replies

10. Programming

find the missing sequence in hash perl

Dear Perl's Users, Could anyone help me how to solve my problem. I have data with details below. TTY NAME SEQUENCES U-0 UNIX 0 U-1 UNIX 1 U-2 UNIX 2 <-- From 2 jump to 5 U-5 UNIX 5 U-6 UNIX 6 <-- From 6 jump to 20 U-20 ... (2 Replies)
Discussion started by: askari
2 Replies
Login or Register to Ask a Question