awk (?) programming


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers awk (?) programming
# 8  
Old 07-18-2008
Well,
I don't think this is the real input and this is important because the code should be based on patterns. Anyway, given your sample you could use something like this with your original input file(a very quick, dirty and not idiomatic solution):

(the code should work even with the old Solaris awk)

Code:
awk '/student|class/ {
  if ($0 ~ /student/)
    s[++c] = $0 
  else {
    if (c > 1)
      while (++i <= c)
        printf "%s\n%s\n", s[i], $0
    else
      printf "%s\n%s\n", s[1], $0    
    split("", s)
    c = i = 0    
    }
}' filename

# 9  
Old 07-18-2008
well thanks radoulov, but yes, your solution does depend on the pattern "student" or "class" .. however, the file doesn't have the actual words "student" and "class"!!! it's student names and class names.. that's why i was trying to use line by line editing and counters and such Smilie
# 10  
Old 07-18-2008
Now you have the logic, you just need to adjust the patterns and that's left as an exercise.
# 11  
Old 07-18-2008
well thanks to all for the help..
# 12  
Old 09-23-2008
Computer Hmmmmm

I've written a nawk program for your problem..

BEGIN {
counter=0;
store[1]="";
}

{
if(match($0,"class"))
{
for(i=1;i<=counter;i++)
{
printf("%s\n",store[i]);
printf("%s\n",$0);
}

for(i=1;i<=counter;i++)
{
delete store[counter];
}
counter=0;
}
else {
store[++counter]=$0;
}
}

Data is:
$ cat data
student1
classa
student2
classb
student3
student4
classc
student5
student6
student7
classd

$ nawk -f class.nawk data
student1
classa
student2
classb
student3
classc
student4
classc
student5
classd
student6
classd
student7
classd

you can redirect the output as needed.
I ain't a pro, but this solution works! Smilie Smilie Smilie Smilie
# 13  
Old 09-24-2008
Power Thank you..

I've been able to figure out a solution myself too. thanks for the help..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk programming -Passing variable to awk for loop

Hi All, I am new to AWK programming. I have the following for loop in my awk program. cat printhtml.awk: BEGIN -------- <some code here> END{ ----------<some code here> for(N=0; N<H; N++) { for(M=5; M<D; M++) print "\t" D ""; } ----- } ... (2 Replies)
Discussion started by: ctrld
2 Replies

2. Shell Programming and Scripting

awk programming

Need assistance using awk . Need assistance in awk programming. Any idea of getting the marked data into a file. </tr> <tr> <td class='labelOptional_ind'> cdr.00012325.0000000000000000.20130612.050005.WANP4722_csv </td> <td width='15%' class='labelOptional'> <div align='center'>... (8 Replies)
Discussion started by: ajayram_arya
8 Replies

3. Shell Programming and Scripting

AWK programming

Hi All, I read the AWK manual in the MAN page. But i didn't understand the below piece of code in the script TABLE=`echo "${FILE}" | awk -F"/" '{print $NF}' | cut -d"." -f1 | awk -F"_" '{print $NF}' 2>> ${LOGFILE}`; Please explain the above code. Thanks in advance ....... Regards,... (4 Replies)
Discussion started by: pdathu
4 Replies

4. Programming

awk programming

I have the list of numbers in a file 105.1 102.0 100.5 100 98 97.5 95 ... I want to get how many times I have numbers greater than a particular limit, say 100 in the list. How can I do that with awk command? (5 Replies)
Discussion started by: pranto_d
5 Replies

5. Shell Programming and Scripting

awk programming

Good morning to everyone! guys, help me please I have a file like this one: diamond 5 7.8 77777765 1 7 1234567890 9 3.5 diamond 2 1 1234567890 3 6.8 77777765 0 4 os Solaris it's only example, columns may be more, but in my case only 3 columns so, my question how I can group... (1 Reply)
Discussion started by: shizik
1 Replies

6. UNIX for Dummies Questions & Answers

awk programming

Good morning! guys, help me please I have a file like this one: diamond 5 7.8 77777765 1 7 1234567890 9 3.5 diamond 2 1 1234567890 3 6.8 77777765 0 4 os Solaris it's only example, columns may be more, but in my case only 3 columns so, my question how I can group according to... (1 Reply)
Discussion started by: shizik
1 Replies

7. Shell Programming and Scripting

awk programming

Hi I have a multi -line file which is sorted by the 1-st colomn in the following format: 400 0000 0001 1000 1010 0111 0000 1000 0000 402 1101 0000 1100 1010 0111 1000 1000 0000 403 1001 0000 1100 1010 0111 0000 1000 0000 495 1000 0000 1100 ... (4 Replies)
Discussion started by: aoussenko
4 Replies

8. Shell Programming and Scripting

need help with awk programming

Hello Friends I want to process only those lines which are not started with a * or " example File name: GRX "RxDataTime, NSysClkEn, Frame","Size","Sleep","TNum","TSet","TWait" *Init Start *Comment Generated from: C:\Documents and Settings 000000,0000,1,0,0,0,0,0,0... (8 Replies)
Discussion started by: user_prady
8 Replies

9. Shell Programming and Scripting

awk programming

Hi all, i want to study harder awk programming. where can i get a good examples, problems and solutions. i'm in a hurry.. thanks, (5 Replies)
Discussion started by: tungaw2004
5 Replies

10. Shell Programming and Scripting

awk programming

Hi folks, I would like to know the difference between shell programming and awk programming. Actually i have developed a few applications in both but i could not find a better difference other than the syntax differences. For example, the awk programming syntax is complicated. It has "{" and... (4 Replies)
Discussion started by: Nisha
4 Replies
Login or Register to Ask a Question