Help! output format from vertical to horizontal


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help! output format from vertical to horizontal
# 8  
Old 08-09-2013
Another way:
Code:
$ awk '!(NR%2){printf $1" ";c++}c==3{c=0;printf "\n"}' data
robert 787 consultant 
alex 898 advocate

# 9  
Old 08-09-2013
Jotne, Yoda and Ravinder

Thanks a lot for your help.

Still, am unable to achieve the desired output as per my requirement.
I have a file which has more than 1000 lines of data and the format is similar to the sample one provided in this thread.

Q:
What if there are more than 1000 employess list in a file.
How could we achieve to get the desired output through iterating till end of the file.

Thanks in advance.
# 10  
Old 08-09-2013
As long as the format of the file is constant this should be no problem to solve.
All this example runs to end of file and prints new line for every employ.
Can you post more real data, like 30-40 lines, it would help us to help you.
# 11  
Old 08-09-2013
Below is the real data from which I want to generate the required output.
I have just given a first two cases it has totally more than 1000 lines of similar data and ofcourse the values will be different ( header remains the same "name, svc, isCached, isPrefetched, sAccessLast, sAccessTotal and sRunning ")

I feel if it works for below then obviously it will work for entire file the only case is to iterate through entire file.
Code:
name
COM.WM.ISEXTDC.PKGINIT:INIT
svc
init
isCached
N
isPrefetched
N
sAccessLast
2013-07-13 00:39:10 MEST
sAccessTotal
1
sRunning
5
name
DSM_APPS_MANAGEMENT.BROKERCLIENTQUEUE_CLEANUP:CLEANUP
svc
cleanup
isCached
N
isPrefetched
N
sAccessLast
2013-08-03 16:14:19 MEST
sAccessTotal
1041
sRunning
1

Thanks for your time and support

Moderator's Comments:
Mod Comment Please use code tags

Last edited by Scott; 08-09-2013 at 10:24 AM.. Reason: Code tags
# 12  
Old 08-09-2013
Well, this is a special case, and I don't know if this will work on your long file. I have to cling to some assumptions, e.g. that every record has and starts with a name. Anyhow, give this a shot:
Code:
paste -d " " - - <file |
awk     'NR>1 && $1=="name"     {if (!HdFull) for (i=1; i<=c; i++) printf "%s\t", Hd[i]; print ""
                                 for (i=1; i<=c; i++) printf "%s\t", Dt[Hd[i]]; print ""
                                 delete Dt; HdFull = 1 } 
         !HdFull                {Hd[++c] = $1}
                                {Dt[$1]  = $2}
         END                    {for (i=1; i<=c; i++) printf "%s\t", Dt[Hd[i]];  print ""}
        ' file
name    svc    isCached    isPrefetched    sAccessLast    sAccessTotal    sRunning    
COM.WM.ISEXTDC.PKGINIT:INIT    init    N    N    2013-07-13    1    5    
DSM_APPS_MANAGEMENT.BROKERCLIENTQUEUE_CLEANUP:CLEANUP    cleanup    N    N    2013-08-03    1041    1

# 13  
Old 08-09-2013
Quote:
Originally Posted by rocky2013
Below is the real data from which I want to generate the required output.
I'm sure your intentions were good, but, in the future, don't dumb down the data. Instead of simplifying matters, it usually complicates them and wastes everyone's time.

Here's an approach not too far from your original attempt. For flexibility, the number of fields per record is parameterized, n. It's simpler than any functionally-equivalent single AWK script will be, though not as efficient. However, unless you will be executing it repeatedly in a tight loop, or unless the dataset is massive (tens of thousands of lines is not massive), on typical hardware the pipeline's overhead is of no concern.
Code:
 n=7    # Fields per record
{ awk 'NR==n*2 {exit} NR%2' n=$n file; awk '!(NR%2)' file; } | paste -d ' ' $(yes - | head -n $n)

Regards,
Alister

Last edited by alister; 08-09-2013 at 02:00 PM..
# 14  
Old 08-09-2013
Try this...

Code:
awk ' !f{ff=$0; f=1} !x && NR%2 { if(!(f>1 && $0 ~ ff)){printf "%s\t", $0} if(f==1){f++;next}}
!(NR%2) { d=d" "$0 } $0 ~ ff {print "\n"d; x=1;d=""} END{print d} ' input_file

--ahamed

Last edited by ahamed101; 08-11-2013 at 12:15 AM..
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

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

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

5. Shell Programming and Scripting

Need perl or shell script to sort vertical lines to horizontal line in csv format

Need perl or shell script to sort vertical lines to horizontal line in csv format My file like below ------------------------- ================================================================================ PATH PINKY1000#I1-1-ZENTA1000-2#I7-1-ASON-SBR-UP-943113845 ... (4 Replies)
Discussion started by: sreedhargouda.h
4 Replies

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

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

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

9. Shell Programming and Scripting

Formatting isql output to horizontal format

Hi I am formatting informix isql output(vertical) to horizontal format. Suppose I have the following content in the flat file from isql output - item_nbr 0 usfn_label Subscriber Class usfn_name SBCLASS usfn_value bl5 item_nbr 1 usfn_label Switch Name usfn_name switchName... (2 Replies)
Discussion started by: nsinha
2 Replies

10. Shell Programming and Scripting

combine files in horizontal way, not vertical.

Hi Everyone, I have three files. FileA: aaaa aaaa bb ccc FileB: 21 2 FileC: eeeeeee e eee ee Would like to combine three of them, not like cat, to cat three files, but the output should be like: (3 Replies)
Discussion started by: jimmy_y
3 Replies
Login or Register to Ask a Question