[Solved] Convert Row To column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Solved] Convert Row To column
# 1  
Old 03-11-2014
[Solved] Convert Row To column

Hi Folks,
I am using db2 command -> db2 list tablespace show detail

Code:
Tablespace ID                        = 10
 Name                                 = TSCDDHLMSUM
 Type                                 = Database managed space
 Contents                             = All permanent data. Regular table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 320
 Useable pages                        = 288
 Used pages                           = 224
 Free pages                           = 64
 High water mark (pages)              = 224
 Page size (bytes)                    = 32768
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1

 Tablespace ID                        = 11
 Name                                 = SYSTOOLSPACE
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 1024
 Useable pages                        = 1020
 Used pages                           = 92
 Free pages                           = 928
 High water mark (pages)              = 92
 Page size (bytes)                    = 32768
 Extent size (pages)                  = 4
 Prefetch size (pages)                = 4
 Number of containers                 = 1

As you can see, there are 2 tablespaces information shown in row format, I would like to have show it into column format

Code:
  Tablespace ID   Name             Type                          Contents ....
  -------------    -----             ----                           -------
  10                  TSCDDHLMSUM Database managed space  ....
  11                  SYSTOOLSPACE Database managed space ....


Thanks in advance for all the input.
# 2  
Old 03-11-2014
Add all the fields to print
Code:
$ awk -v RS="" -v FS="[\n=]" ' NR == 1 { print $1, $3, $5; print "----- ----- -----"  } { print $2, $4, $6 } ' file

# 3  
Old 03-11-2014
Hello,

Could you please try following and let me know if this helps.

Code:
rows=`awk -F"=" '{print $1}' convert_row_col_coinvert12111 | xargs -n 1`
columns=`awk -F"=" '{print $2}' convert_row_col_coinvert12111 | xargs -n 1`
echo $rows
echo "----------------------------------------------------------------"
echo $columns


Thanks,
R. Singh
# 4  
Old 03-11-2014
If your input header is fix format then you can placed it in BEGIN block.
Code:
 awk -F"=" 'BEGIN{print "Tablespace ID | Name | Type|  Contents | State|  Total pages | Useable pages|  Used pages|  Free pages|  High water mark (pages)| Page size (bytes) |Extent size (pages) |Prefetch size (pages)| Number of containers"} /=/{if(/Tablespace/ && NR>1) { printf "\n";} printf $2"|";} END{printf "\n"}' filename

# 5  
Old 03-11-2014
Try :

Code:
awk '
function out(){
                print s
                i = s = ""
              }
        ++i<=4{
                gsub(/^[[:space:]]+/,x,$NF)
                s = s ? s OFS $NF: $NF			 
		if(!h){
			gsub(/[[:space:]]+$/,x,$1)
			hdr = hdr ? hdr OFS $1 : $1
		      }
	      }
           !NF{
		if(hdr){ 
			print hdr; h = 1 ; hdr = ""
		       }
                out()
                next
              }
           END{
                out()
              }
     ' FS='=' OFS='\t' file

Code:
$ bash tester
Tablespace ID	 Name	 Type	 Contents
10	TSCDDHLMSUM	Database managed space	All permanent data. Regular table space.
11	SYSTOOLSPACE	Database managed space	All permanent data. Large table space.

---------- Post updated at 07:52 PM ---------- Previous update was at 07:46 PM ----------

--edit--

remove this ++i<=4 in above code to get all fields as column and change OFS='\t' for output separator.
# 6  
Old 03-12-2014
Hi All,
I use anbu23 approach and modified a little bit :

Code:
db2 list tablespaces show detail |awk 'NR > 2 {print $0}'|awk -v RS="" -v FS="[\n]" '{ print $2 ,$8,$9 }'|awk ' $2 >0 && $3 > 0   { printf "%18s %10d %10d \n
", $3,$7,$11}'|awk 'NR == 1 {print "TBSP NAME           TOTAL PAGES    SIZE(G)| USED PAGES    SIZE(G)| FREE PAGES    SIZE(G)|"; print "-----------       ----
---------  ---------| ----------    -------| ----------  ---------|"} {printf "%-20s %10d %10d| %10d %10d| %10d %10d|\n", $1,$2,$2*32768/1024/1024/1024,$3,$3
*32768/1024/1024/1024,$2-$3,($2-$3)/1024/1024/1024}'|grep -v "="

Thank You Everyone who spend time figure it out.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert Data from Column to Row

Hi FileA.txt E_TIM 16, ETE 15, EOND 26, EEC 81, E_1 un, E_2 un, E_3 un, E_4 284, E_TIM 17, ETE 15, EOND 29, EEC 82, E_1 un, E_2 un, E_3 un, E_4 249, (6 Replies)
Discussion started by: asavaliya
6 Replies

2. UNIX for Dummies Questions & Answers

[Solved] Uneven column to row conversion

Hi Unix Forum, I have a relatively easy question i suppose for which, however, until now i could not find a solution. I am working with a program that will give me an output file similar to the following: A 1 2 3 4 B 1 2 3 4 C 1 (9 Replies)
Discussion started by: Leander
9 Replies

3. Shell Programming and Scripting

How to convert the row to column in Perl?

Dear Perl users, Could you help me how to convert from row to column if I've a case below: Linux 2014_01_24 CPU 10 Linux 2014_01_24 MEM 20 UNIX 2014_01_24 CPU 30 UNIX 2014_01_24 MEM ... (6 Replies)
Discussion started by: askari
6 Replies

4. Shell Programming and Scripting

Script: Convert row in to column

Hi, i need to convert SG_ERP1 SG_ERP2 SG_ERP3 in to: SG_ERP1 SG_ERP2 SG_ERP3 It's possibile? (16 Replies)
Discussion started by: elilmal
16 Replies

5. Shell Programming and Scripting

convert row to column with respect of first column.

Input file A.txt :- C2062 -117.6 -118.5 -117.5 C5145 0 0 0 C5696 0 0 0 Output file B.txt C2062 X -117.6 C2062 Y -118.5 C2062 Z -117.5... (4 Replies)
Discussion started by: asavaliya
4 Replies

6. Shell Programming and Scripting

Convert row to column

Hi, I have a file like this 50 1 2 1374438 50 1 2 1682957 50 5 2 1453574 50 10 2 1985890 100 1 2 737307 100 5 2 1660204 100 10 2 2148483 and I want to convert this by... (1 Reply)
Discussion started by: gvj
1 Replies

7. Shell Programming and Scripting

convert a column to row output?

Getting tired of cut-and-paste...so I thought I would post a question. how do I change this column output to a single row? from this: # vgdisplay -v /dev/vgeva05 | grep dsk | awk '{print $3}' /dev/dsk/c6t0d5 /dev/dsk/c11t0d5 /dev/dsk/c15t0d5 /dev/dsk/c18t0d5 /dev/dsk/c7t0d5... (8 Replies)
Discussion started by: mr_manny
8 Replies

8. Shell Programming and Scripting

Convert column values into row

hi, I have a requirement where in I read the values from a file using awk. The resulting data should be converted into row format from column format. For ex: My log file login.lst contains the following SERVER1 DB1 SERVER2 DB2 SERVER3 DB3 SERVER4 DB4 I use awk to grep only the server... (6 Replies)
Discussion started by: senthil3d
6 Replies

9. Shell Programming and Scripting

column to row convert - script - help

Hi, I have a file named col.txt 1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 I should get this 1.000 5.000 2.000 6.000 3.000 7.000 (10 Replies)
Discussion started by: G0Y
10 Replies

10. UNIX for Dummies Questions & Answers

convert column into row with some modifier

A file content have 1 1:-0.289433 2:0.833778 3:0.314471 4:-0.289433 5:-0.81876 6:-0.456693 7:-0.17511 8:-0.644555 9:-0.00666341 10:-1.13603 I will like to have that column into row with numbers to be printed (red color) only after colon output shud be like that -0.289433... (1 Reply)
Discussion started by: cdfd123
1 Replies
Login or Register to Ask a Question