Sponsored Content
Full Discussion: awk parsing problem
Top Forums Shell Programming and Scripting awk parsing problem Post 302909402 by dagamier on Wednesday 16th of July 2014 03:18:09 PM
Old 07-16-2014
Apologies for not posting actual data. I cleaned it up a bit for outside consumption and limited the amount for brevity, but made sure to include problem samples. Based on these three lines, I would expect to see 1 record for the first line, and 2 records for the third line, with the second line producing no output. Eventually, I will want SUDO_GRP and SUDO_ALIAS records each on their own line, but figure I should tackle this beast one piece at a time as I can always modify and run a second run after the first to keep these two categories separate.:

Raw data:
Code:
GRP(adm),SUDO_GRP(rsm)|900000313                                        
SUDO_ALIAS(HAMU1),SUDO_jtw,systest|900001093                     
SUDO_GRP(analyzer,duladm),analyzer,systest,duladm|900001093


Output for above lines should look like this:
Code:
SUDO_GRP(rsm)|900000313
SUDO_GRP(analyzer)|900001093
SUDO_GRP(duladm)|900001093


And here is the code I used. I did modify what RudiC provided me as that got me closer to the end result. When I ran the code provided by RudiC, I just got a blank line and nothing else.
Code:
 awk     '{match ($1, /SUDO_GRP\([^)]*\)/)
            MT=substr($1, RSTART, 8)
            n=split(substr($1, RSTART+8),T,"[,]*")
            for (i in T) print MT "(" T[i] ")", $2}
            ' FS="|" OFS="|" file

And here is the output I am currently getting with the above code:
Code:
SUDO_GRP((rsm))|900000313
SUDO_ALI(IAS(HAMU1))|900001093
SUDO_ALI(SUDO_jtw)|900001093
SUDO_ALI(systest)|900001093
SUDO_GRP((analyzer)|900001093
SUDO_GRP(duladm))|900001093
SUDO_GRP(analyzer)|900001093
SUDO_GRP(systest)|900001093
SUDO_GRP(duladm)|900001093

As you can see, some of the lines are getting extra parentheses added around them, and it is printing out the SUDO_ALIAS lines, which I want to have omited, but it seems that it did finally omit the GRP only lines.

Last edited by dagamier; 07-17-2014 at 11:03 AM.. Reason: forgot to add the output I am getting based on the provided input data
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk parsing problem

I need help with a problem that I have not been able to figure out. I have a file that is about 650K lines. Records are seperated by blank lines, fields seperated by new lines. I was trying to make a report that would add up 2 fields and associate them with a CP. example output would be... (11 Replies)
Discussion started by: timj123
11 Replies

2. Shell Programming and Scripting

Parsing problem

I need to separate out the contents in the string "xyz","1233","cm_asdfasdf" as xyz,1233,cm_asdfasdf Can anyone help me on this?? (1 Reply)
Discussion started by: Sushir03
1 Replies

3. Shell Programming and Scripting

Parsing problem

Hi, i need to parse a string which looks like this "xyz","1233","cm_asdfasdf" (2 Replies)
Discussion started by: Sushir03
2 Replies

4. Shell Programming and Scripting

Parsing problem

I need to parse a string which looks like "xyx","sdfsdf","asf_asdf" into var1="xyx" var2="sdfsdf" var3="asf_asdf" (3 Replies)
Discussion started by: Sushir03
3 Replies

5. Shell Programming and Scripting

Parsing Problem

Hi all, I am having problems parsing the following file: cat mylist one,two,three four five,six My goal is to get each number on a seperate line. one two three four five six I tried this command: sed -e 's/\,/^M/g' mylist (11 Replies)
Discussion started by: rob11g
11 Replies

6. Shell Programming and Scripting

Another parsing line awk or sed problem

Hi, After looking on different forums, I'm still in trouble to parse a parameters line received in KSH. $* is equal to "/AAA:111 /BBB:222 /CCC:333 /DDD:444" I would like to parse it and be able to access anyone from his name in my KSH after. like echo myArray => display 111 ... (1 Reply)
Discussion started by: RickTrader
1 Replies

7. Shell Programming and Scripting

Parsing problem

Hello, I have a similar problem so I continue this thread. I have: my_script_to_format_nicely_bdf.sh | grep "RawData" |tr -s ' '|cut -d' ' -f 4|tr -d '%' So it supposed to return the percentage used of RawData FS: 80 (Want to use it in a alert script) However I also have a RawData2 FS so... (17 Replies)
Discussion started by: drbiloukos
17 Replies

8. Homework & Coursework Questions

Problem parsing input with awk

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I want add a line.For example:- 123456 1 1 0 1 1 0 1 0 0 0 1 5 8 0 12 10 25 its answer... (4 Replies)
Discussion started by: Arsh10
4 Replies

9. Shell Programming and Scripting

Complex text parsing with speed/performance problem (awk solution?)

I have 1.6 GB (and growing) of files with needed data between the 11th and 34th line (inclusive) of the second column of comma delimited files. There is also a lot of stray white space in the file that needs to be trimmed. They have DOS-like end of lines. I need to transpose the 11th through... (13 Replies)
Discussion started by: Michael Stora
13 Replies

10. Shell Programming and Scripting

Problem parsing

Hi, I want to fetch a text.Clipping. ... (5 Replies)
Discussion started by: protocomm
5 Replies
IGAWK(1)							 Utility Commands							  IGAWK(1)

NAME
igawk - gawk with include files SYNOPSIS
igawk [ all gawk options ] -f program-file [ -- ] file ... igawk [ all gawk options ] [ -- ] program-text file ... DESCRIPTION
Igawk is a simple shell script that adds the ability to have ``include files'' to gawk(1). AWK programs for igawk are the same as for gawk, except that, in addition, you may have lines like @include getopt.awk in your program to include the file getopt.awk from either the current directory or one of the other directories in the search path. OPTIONS
See gawk(1) for a full description of the AWK language and the options that gawk supports. EXAMPLES
cat << EOF > test.awk @include getopt.awk BEGIN { while (getopt(ARGC, ARGV, "am:q") != -1) ... } EOF igawk -f test.awk SEE ALSO
gawk(1) Effective AWK Programming, Edition 1.0, published by the Free Software Foundation, 1995. AUTHOR
Arnold Robbins (arnold@skeeve.com). Free Software Foundation Nov 3 1999 IGAWK(1)
All times are GMT -4. The time now is 12:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy