Transpose Rows


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Transpose Rows
# 1  
Old 03-17-2009
Transpose Rows

Hi,

Am trying to transpose a set of rows into a set of comma separated values.

For eg. if the output of

ps -ef | tail +2 | awk 'BEGIN{ FS=" " } { print $2 }'

is

0
1
3
4

I need to transpose it to -

'0','1','3','4'

Am currently trying -

ps -ef | tail +2 | awk 'BEGIN{ FS=" " } { print $2 }' | tr '\n' ',' > tmpFile
sessList=`cat tmpFile | sed s/.$/\'/ | sed s/^/\'/ | sed s/\,/\'\,\'/ `
echo $sessList

However that does not seem to work.

Any pointers towards achieving this more efficiently/elegantly will be of great help.
# 2  
Old 03-17-2009

Code:
sessList=$(ps -ef | awk -v sq="'" 'NR > 1 { printf sq "%s" sq ",", $2 }' )

# 3  
Old 03-18-2009
Code:
sed -e "s/^/'/" -e "s/$/'/" a.txt | nawk '{str=sprintf("%s,%s",str,$0)}
END{
	sub(/,/,"",str)
print str
}'

# 4  
Old 03-18-2009
Thanks Johnson and Cherry for the responses.

The output from

sessList=$(ps -ef | awk -v sq="'" 'NR > 1 { printf sq "%s" sq ",", $2 }' )

looks like -
'0','1','3','4',

There is an additional comma in the end.

The Output from Cherry's command is exactly the one I was looking for.

However, can you please help me understand the syntax (am still grappling with sed and awk using google) so that I can change it if required in the future.
# 5  
Old 03-18-2009
if you have python
Code:
# ps -eo pid | python -c "import sys;print '\'' +  '\',\''.join(sys.stdin.read().split()[1:]) + '\''"
'1','2','3','4','5','6','7','8','9','12','13','81','82','83','84','85','296','297','298','337','667','668','680','683','795','889','1203','1417','1525','1649','1792','1793','2008','2010','2012','2014','2016','2018','2512','2527','2542','2639','2790','2793','2831','3277','3324','3360','3488','3520','3595','3675','3678','3731','3820','3828','3845','3882','3890','3897','3990','4119','4137','4162','4174','4182','4190','4200','4201','4303','4356','4488','4489','4490','4491','4492','4493','4529','4530','4531','4532','4533','4568','4768','5016','5017','5040','5078','5082','5083','5115','5118','5120','5122','5127','5129','5130','5132','5134','5135','5140','5142','5146','5150','5152','5163','5166','5189','5356','5357','5477','5478','5482','5483','5494','5759','5784','5801','5817','5835','5868','5887','5903','5930','5963','5965','7577','11900','3766','17617','17621','17639','17662','17675','17769','17783','20002','22678','23660','23722','23723'

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Transpose rows to certain columns

Hello, I have the following data and I want to use awk to transpose each value to a certain column , so in case the value is not available the column should be empty. Example: Box Name: BoxA Weight: 1 Length :2 Depth :3 Color: red Box Name: BoxB Weight: 3 Length :4 Color: Yellow... (5 Replies)
Discussion started by: rahman.ahmed
5 Replies

2. Shell Programming and Scripting

Linux - Transpose rows into column

hello, I have a server that collect some performance statistics of 4 servers in the following input file : $ cat inputfile Time,A,Server1,KPI1,data1 Time,A,Server1,KPI2,data2 Time,A,Server1,KPI3,data3 Time,A,Server1,KPI4,data4 Time,A,Server1,KPI5,data5 Time,A,Server2,KPI1,data6... (9 Replies)
Discussion started by: capitain25
9 Replies

3. Programming

To transpose rows to column in hadoop

Hi, i am having an HDFS file which is comma seperated, i need to transpose from rows to column only the header columns text.csv cnt,name,place 1,hi,nz 2,hello,aus I need cnt, name, place while using below command in hadoop getting the error hadoop fs -fmt -1 text.csv (0 Replies)
Discussion started by: rohit_shinez
0 Replies

4. Shell Programming and Scripting

Transpose rows to columns complex

Input: IN,A,1 IN,B,3 IN,B,2 IN,C,7 BR,A,1 BR,A,5 BR,C,9 AR,C,9 Output: CNTRY,A,B,C IN,1,5,7 BR,6,0,9 AR,0,0,9 (7 Replies)
Discussion started by: unme
7 Replies

5. Shell Programming and Scripting

Transpose data as rows using awk

Hi I have below requirement, need help One file contains the meta data information and other file would have the data, match the column from file1 and with file2 and extract corresponding column value and display in another file File1: CUSTTYPECD COSTCENTER FNAME LNAME SERVICELVL ... (1 Reply)
Discussion started by: ravlapo
1 Replies

6. Shell Programming and Scripting

awk to transpose every 7 rows into columns

input: a1 a2 a3 a4 a5 a6 a7 b1 b2 b3 .. b7 .. z1 .. z7 (12 Replies)
Discussion started by: ux4me
12 Replies

7. Shell Programming and Scripting

awk transpose rows to column

Need to transpose in awk rows to column like this: input: A1,6,5,4 3,2,1, A2,8,7,9,10,11,12,13,14 A3,1,2,3,5,7,8,9 A4,9,4,8,1,5,3, output: A1,1 A1,2 A1,4 ... A2,7 A2,8 ... A3,1 A3,2 ... A4,1 A4,3 (5 Replies)
Discussion started by: sdf
5 Replies

8. Shell Programming and Scripting

transpose rows to columns

Any tips on how I can awk the input data to display the desired output per below? Thanking you in advance. input test data: 2 2010-02-16 10:00:00 111111111111 bytes 99999999999 bytes 90% 4 2010-02-16 12:00:00 333333333333 bytes 77777777777 bytes 88% 5 2010-02-16 11:00:00... (4 Replies)
Discussion started by: ux4me
4 Replies

9. Shell Programming and Scripting

Transpose columns to Rows

I have a data A 1 B 2 C 3 D 4 E 5 i would like to change the data A B C D E 1 2 3 4 5 Pls suggest how we can do it in UNIX. Start using code tags, thanks. Also start reading your PM's you get from Mods as well read the Forum Rules. That might not do any harm. (24 Replies)
Discussion started by: aravindj80
24 Replies

10. Shell Programming and Scripting

Transpose Rows Into Columns

I'm aware there are a lot of resources dedicated to the question of transposing rows and columns, but I'm a total newbie at this and the task appears to be beyond me. I have 40 text files with content that looks like this: Dokument 1 von 146 Orange County Register (California) June 26, 2010... (2 Replies)
Discussion started by: spindoctor
2 Replies
Login or Register to Ask a Question