awk - horizontal and vertical text extraction


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk - horizontal and vertical text extraction
# 1  
Old 11-14-2012
Question awk - horizontal and vertical text extraction

Hi,
I need some help in getting extracting the specific horizontal and vertical texts in a single line. I am trying to extract few of the parameters from a config file. Your help is appreciated.

Desired Output
----------------
PHP Code:
Pool                       members        members        members     members     members
axv
-srd-pool-443            11.8.150.15:https  11.8.150.16:https   11.8.150.17:https 11.8.150.18:https  11.8.150.19:https
sas
-xyz.com-pool-46049      11.8.109.44:46049  11.8.109.45:46049
archive
-443                 11.8.112.134:https 11.8.112.135:http 

Sample File
------------------

PHP Code:
}
pool axv-srd-pool-443 {
   
monitor all F5_html-https
   members
      11.8.150.15
:https
      11.8.150.16
:https
      11.8.150.17
:https
      11.8.150.18
:https
      11.8.150.19
:https
}
pool sas-xyz.com-pool-46049 {
   
monitor all https_robots.txt
   members
      11.8.109.44
:46049
      11.8.109.45
:46049
}
pool archive-443 {
   
action on svcdown reset
   monitor all F5
-check-https
   members
      11.8.112.134
:https
      11.8.112.135
:http


Last edited by pratheeshp; 11-14-2012 at 05:46 PM.. Reason: formatting
# 2  
Old 11-14-2012
Code:
awk ' BEGIN { print "Pool                       members        members        members     members     members" } {
 if($1 != "}")
 {
  sub(/pool/,"",$0);
  sub("\{","",$0);
  sub(/monitor all.*/,"",$0);
  sub(/action.*/,"",$0);
  sub("members","",$0);
  printf "%s", $0;
 }
 else
  printf "\n";
} ' infile

This User Gave Thanks to Yoda For This Post:
# 3  
Old 11-14-2012
Code:
awk ' BEGIN { print "Pool                       members        members        members     members     members" } 
/pool/{printf $2;next}
/}/{f=0;printf "\n"}
/members/{f=1;next}
f{printf "\t" $1
}' infile

This User Gave Thanks to ctsgnb For This Post:
# 4  
Old 11-15-2012
Clever way to do it Smilie
It take me some time to debug how this awk is working
Only one small flaw in it, is that when it find } in first line, it prints one blank line between header and data.

Last edited by Jotne; 11-15-2012 at 06:14 AM..
# 5  
Old 11-15-2012
Quote:
Originally Posted by Jotne
Clever way to do it Smilie
It take me some time to debug how this awk is working
Only one small flaw in it, is that when it find { in first line, it prints one blank line between header and data.
You can just add a NR>1 clause or NR==1{next}
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Print vertical to horizontal

Hi Masters, I need help to change my vertical data to horisontal input 2015-04-13|JS|741667 2015-04-13|JSJ|2272 2015-04-13|TMS|107099 2015-04-12|JMD|47945 2015-04-13|TM|760024 2015-04-13|JM|484508 2015-04-14|JMJ|318 2015-04-14|JSD|54436 2015-04-13|JM|15410 Output... (2 Replies)
Discussion started by: radius
2 Replies

2. UNIX for Dummies Questions & Answers

Change Vertical to Horizontal

I need to change data from vertical to horizontal but with condition input USA|80 AUS|40 BRA|33 VEGAS|40 KENTUCKY|50 NEWYORK|21 DARWIN|33 ADELAIDE|21 SAOPAOLO|44 RIO|89 GAPIZA|44 BENFLEX|32 AXIS|44 ACRE|56 HEIGHT|22 (5 Replies)
Discussion started by: radius
5 Replies

3. Shell Programming and Scripting

Script awk vertical to horizontal with some condition

hi all.. i have problem, right now i want to processing some data with input like this BIMAB ACF-0168 QTS-0465 QUA 2013-08-17 14:16:09.34 ** ALAR ORX -004 NDORIDUNGGA (21943) 7745 ABOVE DEFINED 02 00 01 00 00 00 01 00 00 01 03... (12 Replies)
Discussion started by: buncit8
12 Replies

4. Shell Programming and Scripting

How do i do the vertical to horizontal??

51009 8746 8912 17986 20315 24998 5368 38934 7805 8566 (4 Replies)
Discussion started by: nikhil jain
4 Replies

5. Shell Programming and Scripting

awk in horizontal and vertical math

Based on input ail,UTT,id1_0,COMBO,21,24,21,19,85 al,UTHAST,id1_0,COMBO,342,390,361,361,1454 and awk code as awk -F, '{ K=0; for(i=NF; i>=(NF-4); i--) { K=K+$i; J=J+$i;} { print K } } END { for ( l in J ) printf("%s ",J); }' I'm trying to add columns and lines in single line. line... (6 Replies)
Discussion started by: busyboy
6 Replies

6. Shell Programming and Scripting

awk Help: Horizontal to Vertical print with pattern match

Hi AWK Experts, Following is the data : BRH113 DD AA HH CA DD DD AA HH BRH091 A4 A6 AH H7 67 HH J8 9J BRH0991 AA D8 C23 V5 H7 BR2 BRH991 AA HH GG5 BT0 JJ0 I want the output to be alligned with the pattern matching "BRH" inthe line. The output should be look like: A]... (4 Replies)
Discussion started by: rveri
4 Replies

7. Shell Programming and Scripting

Vertical And Horizontal Pivoting

Hi All, My Input data is: A=1 B=2 My desired Output should be: A|B 1|2 Thanks in advance... (3 Replies)
Discussion started by: kmsekhar
3 Replies

8. UNIX for Dummies Questions & Answers

vertical to horizontal

dear all, i'm new to unix and i try to figure out the best case for making list of vertical text to become horizontal and skip the line 1 and 2. example text : Data DATE XXXXX MAX 47 53 49 51 48 48 7 46 51 8 25 (6 Replies)
Discussion started by: andrisetia
6 Replies

9. UNIX for Dummies Questions & Answers

Horizontal to vertical

Hi, Silly question, if I have an excel file that looks something like this: ................. Subject 1 Subject 2 Subject 3 Subject 4 Fever..............13...........9.............23..........14 Headache.........2............12...........18..........23... (3 Replies)
Discussion started by: Xterra
3 Replies

10. Shell Programming and Scripting

Vertical an horizontal pivoing in unix

Please help me to do Vertical an horizontal pivoing in unix in single run. The input file is like this- MRKT|PROD|PRD|FACT1|FACT2|FACT3|FACT4 M1|P1|PR1|F11|F12|F13|F14 M1|P1|PR2|F21|F22|F23|F24 M1|P1|PR3|F31|F32|F33|F34 M2|P2|PR1|F41|F42|F43|F44 M2|P2|PR2|F51|F53|F54|F55... (4 Replies)
Discussion started by: marut_ashu
4 Replies
Login or Register to Ask a Question