AWK counter problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK counter problem
# 1  
Old 11-07-2011
AWK counter problem

Hi

I have a file like below

Code:
############################################
# ParentFolder  Flag   SubFolders

Colateral        1      Source1/Checksum
CVA              1      Source1/Checksum
Flexing          1      VaR/Checksum
Flexing          1      SVaR/Checksum
FX               1      Checksum

Now my awk script will divide Subfolder column based on "/" and arrange it with my parent column then dispaly with Sl Number

but sl no looping isn't working
can anyone help me ; how to change ?
Code:
awk ' /^[^#]/ {c=split($3,a,"/") ;i=0;for(n=1; n<=c; ++n) {print i+1". "$1"/"a[n]}}' folderlist.txt

current o/p
Code:
1. Colateral/Source1
1. Colateral/Checksum
1. CVA/Source1
1. CVA/Checksum
1. Flexing/VaR
1. Flexing/Checksum
1. Flexing/SVaR
1. Flexing/Checksum
1. FX/Checksum

o/p should be
Code:
1. Colateral/Source1
1. Colateral/Checksum
2. CVA/Source1
3. CVA/Checksum
4. Flexing/VaR
5. Flexing/Checksum
6. Flexing/SVaR
7. Flexing/Checksum
8. FX/Checksum

# 2  
Old 11-07-2011
I don't quite understand the desired output given a sample input, but...
Code:
/^[^#]/ && NF {
  n=split($NF, a, "/")
  c++
  for(i=1;i<=n;i++)
    printf("%d. %s/%s\n", c, $1,a[i])
}

# 3  
Old 11-07-2011
I want my o/p to be serialised or ranked based on the split.
The one which you have provided , I tried that one too, but it's ranking the rows based on subfolder and it's split values .

But my ranking shouldn't based on split rather it should be a normal counting loop as below

Code:
awk ' /^[^#]/ {c=split($3,a,"/") ;for(n=1; n<=c; ++n) {print i++". "$1"/"a[n]}}' folderlist.txt

and o/p is
Code:
0. Colateral/Source1
1. Colateral/Checksum
2. CVA/Source1
3. CVA/Checksum
4. Flexing/VaR
5. Flexing/Checksum
6. Flexing/SVaR
7. Flexing/Checksum
8. FX/Checksum

but it o/p counter should begin from 1 not from 0
# 4  
Old 11-07-2011
Quote:
Originally Posted by manas_ranjan
I want my o/p to be serialised or ranked based on the split.
The one which you have provided , I tried that one too, but it's ranking the rows based on subfolder and it's split values .

But my ranking shouldn't based on split rather it should be a normal counting loop as below

Code:
awk ' /^[^#]/ {c=split($3,a,"/") ;for(n=1; n<=c; ++n) {print i++". "$1"/"a[n]}}' folderlist.txt

and o/p is
Code:
0. Colateral/Source1
1. Colateral/Checksum
2. CVA/Source1
3. CVA/Checksum
4. Flexing/VaR
5. Flexing/Checksum
6. Flexing/SVaR
7. Flexing/Checksum
8. FX/Checksum

but it o/p counter should begin from 1 not from 0
This is not the output you wanted previously....
Change i++ to ++i

trying to understand what you mean... How do you reconcile these 2 statements:
this
Quote:
I want my o/p to be serialised or ranked based on the split.
with that
Quote:
But my ranking shouldn't based on split rather it should be a normal counting loop as below
# 5  
Old 11-07-2011
print ++i
# 6  
Old 11-07-2011
thanks, feel like stupid. tricked by ++i.Smilie
Sorry for confusing statement.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to lowercase the values in a column in awk and include a dynamic counter?

Hi, I am trying to incorporate 2 functions into my `awk` command. I want to lower case Column 2 (which is essentially the same information in Col1, except in Col1 I want to maintain the capitalization) and I want to count from 0-N that begins and ends with the start of certain markers that I... (6 Replies)
Discussion started by: owwow14
6 Replies

2. Shell Programming and Scripting

awk - Skip x Number of Lines in Counter

Hello, I am new to AWK and in UNIX in general. I am hoping you can help me out here. Here is my data: root@ubuntu:~# cat circuits.list WORD1 AA BB CC DD Active ISP1 ISP NAME1 XX-XXXXXX1 WORD1 AA BB CC (9 Replies)
Discussion started by: tattoostreet
9 Replies

3. Shell Programming and Scripting

awk line instance counter

I Have a text file with several thousand lines of text. Occasionally there will be a "sysAlive" line of text (every so often) What would be an awk command to print every line of text, and to put in incrementing counter ONLY on the "sysAlive" lines For example: >cat file.txt lineAAA a b c d... (4 Replies)
Discussion started by: ajp7701
4 Replies

4. Shell Programming and Scripting

problem with counter

i having a file 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... (4 Replies)
Discussion started by: sagar_1986
4 Replies

5. UNIX for Dummies Questions & Answers

awk repeats counter

if I wanted to know if the word DOG(followed by several random numbers) appears in col 1, how many times will that same word DOG* appeared in col 2? This is a very large file Thanks! (7 Replies)
Discussion started by: verse123
7 Replies

6. Shell Programming and Scripting

word frequency counter - awk solution?

Dear all, i need your help on this. There is a text file, i need to count word frequency for each word with frequency >40 in each line of file and output it into another file with columns like this: word1,word2,word3, ...wordn 0,0,1 1,2,0 3,2,0 etc -- each raw represents... (13 Replies)
Discussion started by: irrevocabile
13 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

Awk problem: How to express the single quote(') by using awk print function

Actually I got a list of file end with *.txt I want to use the same command apply to all the *.txt Thus I try to find out the fastest way to write those same command in a script and then want to let them run automatics. For example: I got the file below: file1.txt file2.txt file3.txt... (4 Replies)
Discussion started by: patrick87
4 Replies

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

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