problem with counter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting problem with counter
# 1  
Old 05-23-2012
Java problem with counter

i having a file

Code:
xxxxxxxxxxxxxxx1234   ...........value can be  change
xxxxxxxxxxxxxxx1235
xxxxxxxxxxxxxxxx1236
.
.
.
.
xxxxxxxxxxxxxxxxx1300 ...........value can be  change


i want to cut last four characters of first line and last line and find the missing pattern.

output should be like this

Code:
missing pattern are  1240.1242.1289  ("." is sequence separator)

# 2  
Old 05-23-2012
Code:
awk '{print substr($0, length($0)-3)} ' inputfile | sort -nu > outfile
start=$(head -1 outfile)
end=$( tail -1 outfile)
while [ $start -le $end ]
do
     echo $start
     grep -q $start || echo $start
     start=$((  $start + 1 ))
done > badfile
printf "missing patterns are "
tr -s '\n'  '.'  < badfile

try that
# 3  
Old 05-23-2012
Code:
$ awk -F"." '
# First line, just take the pattern and skip to the next
(!F) { F=$NF; next }
# If the sequence doesn't end in the next number, keep adding until it does.
++F != $NF { D=$NF; while(F < D) { $NF=F++;  print $0 " missing"; } }' OFS="." data
1240.1242.1323 missing
1240.1242.1324 missing
1240.1242.1384 missing
1240.1242.1385 missing
1240.1242.1445 missing
1240.1242.1446 missing
1240.1242.1574 missing
1240.1242.1575 missing
1240.1242.1737 missing
1240.1242.1738 missing
1240.1242.1917 missing
1240.1242.1918 missing
1240.1242.1919 missing
1240.1242.2115 missing
1240.1242.2243 missing

$

# 4  
Old 05-23-2012
Hi sagar_1986,

One way using perl:
Code:
$ cat infile
xxxxxxxxxxxxxxx1234
xxxxxxxxxxxxxxx1236
xxxxxxxxxxxxxxx1237
xxxxxxxxxxxxxxx1239
$ cat script.pl
use strict;
use warnings;

my (@nums, @missed_nums);

while ( <> ) {
        chomp;
        push @nums, substr $_, -4;
}

my ($i, $j);
for ( ($i,$j) = ( (shift @nums) + 1, pop @nums); $i < $j; $i++ ) {
        if ( @nums && $nums[0] == $i ) {
                shift @nums;
                next;
        }

        push @missed_nums, $i;
}

printf qq[%s\n], join q[.], @missed_nums;
$ perl script.pl infile
1235.1238

# 5  
Old 05-24-2012
dear jim mcnamara

i hv tried urs suggestion but their is some error
log is like this


Code:
> set -x
> awk '{print substr($0, length($0)-3)} ' new1.txt | sort -nu > new2.txt
>  start=$(head -1 new2.txt)
> end=$( tail -1 new2.txt)
> while [ $start -le $end ]
>  do
> echo $start
>  grep -q $start || echo $start
> start=$((  $start + 1 ))
> done > badfile
> printf "missing patterns are "
>  tr -s '\n'  '.'  < badfile
> set +x
>  }
+ sort -nu
+ awk {print substr($0, length($0)-3)}  new1.txt
+ 1> new2.txt
+ + head -1 new2.txt
start=7566
+ + tail -1 new2.txt
end=8128
+ 1> badfile
+ [ 7566 -le 8128 ]
+ echo 7566
+ grep -q 7566


the script just hanged ....



the part of new2.txt is as below

Code:
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919

---------- Post updated at 06:12 AM ---------- Previous update was at 06:07 AM ----------

Quote:
Originally Posted by Corona688
Code:
$ awk -F"." '
# First line, just take the pattern and skip to the next
(!F) { F=$NF; next }
# If the sequence doesn't end in the next number, keep adding until it does.
++F != $NF { D=$NF; while(F < D) { $NF=F++;  print $0 " missing"; } }' OFS="." data
1240.1242.1323 missing
1240.1242.1324 missing
1240.1242.1384 missing
1240.1242.1385 missing
1240.1242.1445 missing
1240.1242.1446 missing
1240.1242.1574 missing
1240.1242.1575 missing
1240.1242.1737 missing
1240.1242.1738 missing
1240.1242.1917 missing
1240.1242.1918 missing
1240.1242.1919 missing
1240.1242.2115 missing
1240.1242.2243 missing

$


thank you very much for the reply,bt i am very new in UNIX world.I didn't get ant thing.where is the input file to be given
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Record counter

For the following code SEQ=200 awk -v S="$SEQ" ' $0 ~ S { N++ print N } ' "$1"ascii >"$1"search N is printed 8002 times as it occurred 8002 times in file how I could print the counter one time only (20 Replies)
Discussion started by: khaled79
20 Replies

2. Shell Programming and Scripting

Counter

if ;then echo "mrnet greater 5000" gzip /var/log/mrnet.log mv /var/log/mrnet.log.gz /var/log/mrnet.log.1.gz if ];then i=1 let i++ mv /var/log/mrnet.log.1.gz /var/log/vieux-logs/mrnet.log.$i.gz else echo "theres no... (1 Reply)
Discussion started by: Froob
1 Replies

3. Shell Programming and Scripting

List Counter

cat sport_by_month Month : Jan sport :Football sport :Volleyball Month: Feb sport :BasketBall sport: Cricket sport: Fotball Month: Mar Month: APR sport : Bowling sport : Climbing I need your help to have a script that count the number of sports per month and sorted by mont with... (7 Replies)
Discussion started by: Sara_84
7 Replies

4. Shell Programming and Scripting

AWK counter problem

Hi I have a file like below ############################################ # ParentFolder Flag SubFolders Colateral 1 Source1/Checksum CVA 1 Source1/Checksum Flexing 1 VaR/Checksum Flexing 1 SVaR/Checksum FX 1 ... (5 Replies)
Discussion started by: manas_ranjan
5 Replies

5. Shell Programming and Scripting

grep and counter

Hi, I have such an example(ksh): name1=Example directory=/directory1/Example/directory2 match=$(grep -s '$name1' $directory | wc -l) echo $match But it replies to me: 0 What I expect from it, is to find $name1 in $directory and produce 1 for me as true, not false. (3 Replies)
Discussion started by: chish
3 Replies

6. Shell Programming and Scripting

counter

Hi, I need some help. Shell script counter. i need to add condition to check if counter is more than 10 and longer than 3 hours? it runs every 5 mins. it only check count and send email right now. it runs in cron as below gregcount.ksh gregdb 10 > /tmp/gregcount.out 2> /tmp/gregcount.err ... (1 Reply)
Discussion started by: pega
1 Replies

7. Shell Programming and Scripting

Problem assigning a counter for particular pattern

Hi, I have a script that compares two files(which are updated dynamically by a daemon) and evaluate results from the comparision. For the first line of comparision from the file1, i will grep some part of the line in file with file1 and set a counter for that particular comparison. So for each... (12 Replies)
Discussion started by: reddybs
12 Replies

8. Shell Programming and Scripting

counter problem

Hi, I'm attempting to take the following input list and create an output file as shown below. I've monkeyed around for long enough. Can anyone help? NOTE: fs*** will be header and I want to get a count on NY**. fs200a NY7A fs200b NY7B NY7B NY7B fs200c NY7C NY7C NY7C NY7C... (2 Replies)
Discussion started by: jwholey
2 Replies

9. UNIX for Dummies Questions & Answers

counter / increment problem within echo stmt

Simple script trying to increment a counter within an echo statement never gets past 1 - PLEASE HELP! Thanks. ~~~~~~~~~~~ #!/bin/sh stepup() { STEP=`expr $STEP + 1` echo $STEP } # # Initialize variables # STEP=0 echo "Counter Value: `stepup`" echo "Counter Value:... (2 Replies)
Discussion started by: blaze
2 Replies
Login or Register to Ask a Question