Sponsored Content
Top Forums Shell Programming and Scripting Please explain what this Awk code is doing Post 302569551 by James_Owen on Monday 31st of October 2011 04:42:34 PM
Old 10-31-2011
Please explain what this Awk code is doing

Hi Guys,

Please help me, I am new to programming and I don’t understand what some parts of this code are doing. I have comments on the parts I know, please help if my understanding of the code is not correct and also help with parts with questions.
Code:
  awk '
      {
          gsub( ">", "" );        #replace the > with space
          gsub( " ", "~" );          #replace the  space with match 
          gsub( "<", " " );          #replace the < with space
   
   
          for( i = 1; i <= NF; i++ )          #For loop which sets i to 1 and i is less than or equal to number  of fields and I increases by 1 each time the loop run. 
   
          {
              if( split( $(i), a, "=" ) == 2 )  #split the string i into array a on the regular expression. 
  What is ==2 doing 
              {
                  gsub(  "\"", "", a[2] ); #replace \ with space 
  What is a[2] doing , is this array index 2 if so why index 2
                  gsub(  "~", " ", a[2] );
                  values[a[1]] = a[2];
  What is this doing values [a[1]]=a[2];             
  }
          }
   
          gcount[values["Gender"]]++;         # collect counts
          acount[values["Age"]]++;
   
          printf( "%s %s %s %s\n", values["NAME"], values["Age"], values["D.O.B"], values["Gender"] );
      }
   
      END {
          printf( "\nAge Count" );
          for( x in acount ) #for loop make the x as index for array acount 
              printf( "%s %d\n", x, acount[x] );
  What is this print doing? It is printing the values in x but how. 
          printf( "\nGender Count:\n" );
          for( x in gcount )
              printf( "%s %d\n", x, gcount[x] );
      }
  ' input_file

Example of the xml message is.
Code:
  [date+time], message=[DATA= “<?xml version=”1.0?”><data changeMsg><NAME=”John Smith”><Age=”23”><D.O.B=”11-10-1988”> <Gender=”Male”>”

Sorry guys I know I am asking a lot but any help would be greatly appreciated?

Thank you all

Last edited by Franklin52; 11-01-2011 at 04:10 AM.. Reason: Please use code tags, thank you
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

could someone explain this code

hey peeps could someone explain what this part of the code means: 'if echo $* | grep -q' $i '|| thanks tHe_nEw_GuY (2 Replies)
Discussion started by: the_new_guy
2 Replies

2. Shell Programming and Scripting

Explain awk

Hi, I found this command in this forum, but, couldnt understand much from it. could any one help me understand that??? the commands are : awk '{sub(/ ~/,""); printf $0 ($0~/\|$/?ORS:"")}' file1 > file2 awk '{sub(/~ */,x);printf $0(/\|$/?ORS:x)}' awk '{sub(/~ */,x);sub(/\|$/, "|\n")}8'... (4 Replies)
Discussion started by: hitmansilentass
4 Replies

3. UNIX for Advanced & Expert Users

explain the code

Hi , Can anyone explains what does the below highlighted statements means: # Set environment variables . ${0%/*}/wrkenv.sh jobName_sh=${0##*/} jobName=${jobName_sh%.*} Thanks, Sri (1 Reply)
Discussion started by: srilaxmi
1 Replies

4. Shell Programming and Scripting

Can any one explain what this code will do

ccc_con,CCC_CON,0 Above is the input for this code #!/usr/bin/bash my_path=`dirname $0` T_table=$1 S_table=$2 P_table=$3 #Star new code while read ${my_path}/arch_table_list.txt { awk -F "," '{print $1}' ${my_path}/arch_table_list.txt ${S_table} awk -F "," '{print... (1 Reply)
Discussion started by: scorp_rahul23
1 Replies

5. Programming

Explain a block of code:

Hi, I have this block in a code and I need to know it's meaning: bool selectEvents = config.get("selectEvents",false); if (selectEvents) { ifstream in("events"); while (in) { int run, evt; in >> run >> evt; if (in.eof()) break; ... (5 Replies)
Discussion started by: eager2no
5 Replies

6. Shell Programming and Scripting

Please explain what this code is doing

Hi, Pls explain me what the below code is doing. specially meaning if -a while calling test function- case $1 in 1) beg_dt=01; end_dt=07 ;; 2) beg_dt=08; end_dt=14 ;; 3) beg_dt=15; end_dt=21 ;; 4) beg_dt=22; end_dt=28 ;; 5) beg_dt=29; end_dt=31 ;; esac test \( `date +%w` -eq $2 -a... (3 Replies)
Discussion started by: sendtoshailesh
3 Replies

7. Shell Programming and Scripting

can you explain this sed code?

can anyone please explain this code? sed ':a;N;$!ba;s/]\n//g' file it replaces lines ending with "]" and concatenates with the next line so that line1] line2 becomes line1line2 i don't understand this part: :a;N;$!ba; I have noted that I can replace "a" with any letter: ... (1 Reply)
Discussion started by: locoroco
1 Replies

8. Shell Programming and Scripting

Explain this awk

found this handy one liner in another thread which is closed, it does what i need but im trying to understand it. it basically matches the field that contains the value v and prints its position awk -F, '{for(i=1;i<=NF;i++)if($i==v)print i}' v=yourfield inputfile my understanding is assign... (3 Replies)
Discussion started by: jack.bauer
3 Replies

9. Shell Programming and Scripting

Explain awk

I have 2 files recevied abc def ghi totallist abc 123 jasdhfaj def 345 fjdgkfsfh ghi 567 dfjdhdhfj jkl 678 djkahfdjshdf xyz 984 jdfdhfhdh myOutputFile jkl 678 djkahfdjshdf xyz 984 jdfdhfhdh I used this command for the output : awk 'FNR==NR {f1;next} !($1 in f1)' recevied... (2 Replies)
Discussion started by: nani1984
2 Replies

10. UNIX for Beginners Questions & Answers

Can someone please explain why we need to set ORS in below awk code?

Question: Write a command to print the fields in a text file in reverse order? awk 'BEGIN {ORS=""} { for(i=NF;i>0;i--) print $i," "; print "\n"}' filename I was thinking it should be (what is the need to set ORS="" ? )- awk 'BEGIN { for(i=NF;i>0;i--) print $i," "; print "\n"}' filename (3 Replies)
Discussion started by: Tanu
3 Replies
MU-EXTRACT(1)						      General Commands Manual						     MU-EXTRACT(1)

NAME
mu_extract - display and save message parts (attachments), and open them with other tools. SYNOPSIS
mu extract [options] <file> mu extract [options] <file> <pattern> DESCRIPTION
mu extact is the mu sub-command for extracting MIME-parts (e.g., attachments) from mail messages. It works on message files, and does not require the message to be indexed in the database. For attachments, the file name used when saving it, is the name of the attachment in the message. If there is no such name, or when saving non-attachment MIME-parts, a name is derived from the message-id of the message. If you specify a pattern (a case-insensitive regular expression) as the second argument, all attachments with filenames matching that pat- tern will be extracted. The regular expressions are Perl-compatible (as per the PCRE-library). Without any options, mu extract simply outputs the list of leaf MIME-parts in the message. Only 'leaf' MIME-parts (including RFC822 attach- ments) are considered, multipart/* etc. are ignored. OPTIONS
-a, --save-attachments save all MIME-parts that look like attachments. --save-all save all non-multipart MIME-parts. --parts=<parts> only consider the following numbered parts (comma-separated list).The numbers for the parts can be seen from running mu extract without any options but only the message file. --target-dir=<dir> save the parts in the target directory rather than the current working directory. --overwrite overwrite existing files with the same name; by default overwriting is not allowed. --play Try to 'play' (open) the attachment with the default application for the particular file type. On MacOS, this uses the open program, on other platforms is uses xdg-open. You can choose a different program by setting the MU_PLAY_PROGRAM environment variable. EXAMPLES
To display information about all the MIME-parts in a message file: $ mu extract msgfile To extract MIME-part 3 and 4 from this message, overwriting existing files with the same name: $ mu extract --parts=3,4 --overwrite msgfile To extract all files ending in '.jpg' (case-insensitive): $ mu extract msgfile '.*.jpg' To extract an mp3-file, and play it in the the default mp3-playing application. $ mu extract --play msgfile 'whoopsididitagain.mp3' BUGS
Please report bugs if you find them: http://code.google.com/p/mu0/issues/list AUTHOR
Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> SEE ALSO
mu(1) User Manuals February 2012 MU-EXTRACT(1)
All times are GMT -4. The time now is 04:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy