Format - Inventory Row data into Column - Awk - Nawk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Format - Inventory Row data into Column - Awk - Nawk
# 1  
Old 04-24-2009
Format - Inventory Row data into Column - Awk - Nawk

Hi All,

I have the following file that has computer data for various pcs in my network...

Snap of the file is as follows

*******************************************************************************
Serial
123456

Computer IP Address
lo0: flags=12345687<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ffff0000
bge0: flags=1234667<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 2
inet 1.2.3.4 netmask fff00000 broadcast 1.2.3.4

Make of Machine
SunOS test 5.10 Generic_123456-02 sun4u sparc SUNW,Sun-Fire-V440

CPU Processor Info
The physical processor has 1 virtual processor (0)
UltraSPARC-IIIi (portid 0 impl 0x16 ver 0x18 clock 1002 MHz)
The physical processor has 1 virtual processor (1)
UltraSPARC-IIIi (portid 1 impl 0x16 ver 0x18 clock 1002 MHz)

Memory Info
Memory size: 4144 Megabytes

Disk Info
Vendor: SEAGATE Product: ST123456LSUN22G Revision: 0101 Serial No: 12345678
Size: 73.40GB <73400057856 bytes>
Vendor: SEAGATE Product: ST13456LSUN12G Revision: 0202 Serial No: 12345678
Size: 73.40GB <73400057856 bytes>
*******************************************************************************

*******************************************************************************
Serial
1357921

Computer IP Address
lo0: flags=12345687<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ffff0000
bge0: flags=1234667<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 2
inet 1.2.3.5 netmask fff00000 broadcast 1.2.3.4

Make of Machine
SunOS test1 5.10 Generic_123456-02 sun4u sparc SUNW,Sun-Fire-V440

CPU Processor Info
The physical processor has 1 virtual processor (0)
UltraSPARC-IIIi (portid 0 impl 0x16 ver 0x18 clock 1002 MHz)
The physical processor has 1 virtual processor (1)
UltraSPARC-IIIi (portid 1 impl 0x16 ver 0x18 clock 1002 MHz)

Memory Info
Memory size: 8144 Megabytes

Disk Info
Vendor: SEAGATE Product: ST123456LSUN22G Revision: 0101 Serial No: 12345678
Size: 73.40GB <73400057856 bytes>
Vendor: SEAGATE Product: ST13456LSUN12G Revision: 0202 Serial No: 12345678
Size: 73.40GB <73400057856 bytes>
*******************************************************************************
.
.
.
.
.
.
.
.

.
********************************************************************************


I like to run a script in unix preferably in Awk or any simple shell code to product the following output


Output Should look like this

Serial Computer IP Address Make of Machine CPU Processor Info Memory Info Vendor Size

1234567 1.2.3.4 SunOS test..Sun-Fire-V440 UltraSPARC-IIIi 4144 Megabytes Seagate 73.4 GB
UltraSPARC-IIIi Seagte 73.4 GB

1357921 1.2.3.5 SunOS test1..Sun-Fire-V440 UltraSPARC-IIIi 8144 Megabytes Seagate 73.4 GB
UltraSPARC-IIIi Seagte 73.4 GB

*********************************************************

I can then import data in excel or any other data base......

Any suggestions or hint would be greatly appreciated.... Thank you in advance for your time and support....
# 2  
Old 04-24-2009
Code:
$ 
$ # Print the file "computer_data.txt" that has information of all PCs in the network
$                                                                                    
$ cat computer_data.txt                                                              
*******************************************************************************      
Serial                                                                               
123456                                                                               

Computer IP Address
lo0: flags=12345687<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ffff0000                                                 
bge0: flags=1234667<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 2   
inet 1.2.3.4 netmask fff00000 broadcast 1.2.3.4                                 

Make of Machine
SunOS test 5.10 Generic_123456-02 sun4u sparc SUNW,Sun-Fire-V440

CPU Processor Info
The physical processor has 1 virtual processor (0)
UltraSPARC-IIIi (portid 0 impl 0x16 ver 0x18 clock 1002 MHz)
The physical processor has 1 virtual processor (1)          
UltraSPARC-IIIi (portid 1 impl 0x16 ver 0x18 clock 1002 MHz)

Memory Info
Memory size: 4144 Megabytes

Disk Info
Vendor: SEAGATE Product: ST123456LSUN22G Revision: 0101 Serial No: 12345678 
Size: 73.40GB <73400057856 bytes>                                           
Vendor: SEAGATE Product: ST13456LSUN12G Revision: 0202 Serial No: 12345678  
Size: 73.40GB <73400057856 bytes>                                           
*******************************************************************************

*******************************************************************************
Serial                                                                         
1357921                                                                        

Computer IP Address
lo0: flags=12345687<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ffff0000                                                 
bge0: flags=1234667<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 2   
inet 1.2.3.5 netmask fff00000 broadcast 1.2.3.4                                 

Make of Machine
SunOS test1 5.10 Generic_123456-02 sun4u sparc SUNW,Sun-Fire-V440

CPU Processor Info
The physical processor has 1 virtual processor (0)
UltraSPARC-IIIi (portid 0 impl 0x16 ver 0x18 clock 1002 MHz)
The physical processor has 1 virtual processor (1)          
UltraSPARC-IIIi (portid 1 impl 0x16 ver 0x18 clock 1002 MHz)

Memory Info
Memory size: 8144 Megabytes

Disk Info
Vendor: SEAGATE Product: ST123456LSUN22G Revision: 0101 Serial No: 12345678 
Size: 73.40GB <73400057856 bytes>                                           
Vendor: SEAGATE Product: ST13456LSUN12G Revision: 0202 Serial No: 12345678
Size: 73.40GB <73400057856 bytes>
*******************************************************************************

$
$ # Display the awk script "block.awk" that will process a modified version of "computer_data.txt"
$
$ cat block.awk
BEGIN {
  FS = "\n"; RS = "\n~\n"; OFS = "\n";
  print "Serial\tComputer IP Address\tMake of Machine\tCPU Processor Info\tMemory Info\tVendor\tSize"
}

{
serial = $3
split($8,x," ");  ipaddr = x[2]
split($10,x," "); make = x[1] " " x[2]
split($13,x," "); cpu = x[1]
split($17,x," "); mem = x[3] " " x[4]
split($19,x," "); vndr = x[2]
split($20,x," "); size = x[2]
print serial "\t" ipaddr "\t" make "\t" cpu "\t" mem "\t" vndr "\t" size
}
$
$
$ # Start processing now. Note that "sed" is used to (a) remove blank lines and (b) replace each
$ # line consisting of "*" characters by a single "~" character.
$
$ sed -e '/^$/d' -e 's/^\*\**/~/g' computer_data.txt | awk -f block.awk
Serial  Computer IP Address     Make of Machine CPU Processor Info      Memory Info     Vendor  Size
123456  1.2.3.4 SunOS test      UltraSPARC-IIIi 4144 Megabytes  SEAGATE 73.40GB
1357921 1.2.3.5 SunOS test1     UltraSPARC-IIIi 8144 Megabytes  SEAGATE 73.40GB
$
$

tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to get row data printed in column using awk?

Hi team, I have below sample file. $ cat sample dn: MSISDN=400512345677,dc=msisdn,ou=NPSD,serv=CSPS,ou=servCommonData,dc=stc structuralObjectClass: NphData objectClass: NphData objectClass: MSISDN entryDS: 0 nodeId: 35 createTimestamp: 20170216121047Z modifyTimestamp: 20170216121047Z... (3 Replies)
Discussion started by: shanul karim
3 Replies

2. UNIX for Dummies Questions & Answers

Des/awk for change format and adding integers in a column of data?

Greetings! I need a quick way to change the format in a table of data Here is an example of the input: 10 72 Value=177 VDB=0.0245 Value4=0,0,171,0 10 274 Value=238 VDB=0.0433 Value4=29,0,205,0 10 312 Value=222 VDB=0.0384 Value4=8,0,190,19 10 540 Value=405 VDB=0.0391 Value4=13,30,153,195... (3 Replies)
Discussion started by: Twinklefingers
3 Replies

3. UNIX for Dummies Questions & Answers

awk to print first row with forth column and last row with fifth column in each file

file with this content awk 'NR==1 {print $4} && NR==2 {print $5}' file The error is shown with syntax error; what can be done (4 Replies)
Discussion started by: cdfd123
4 Replies

4. Shell Programming and Scripting

awk - script help: column to row format of data allignment?

Experts Good day, I have the following data, file1 BRAAGRP1 A2X B2X C2X D2X BRBGRP12 A3X B3X Z10 D09 BRC1GRP2 LO01 (4 Replies)
Discussion started by: rveri
4 Replies

5. UNIX for Advanced & Expert Users

Convert column data to row data using shell script

Hi, I want to convert a 3-column data to 3-row data using shell script. Any suggestion in this regard is highly appreciated. Thanks. (4 Replies)
Discussion started by: sktkpl
4 Replies

6. Shell Programming and Scripting

Subtracting each row from the first row in a single column file using awk

Hi Friends, I have a single column data like below. 1 2 3 4 5 I need the output like below. 0 1 2 3 4 where each row (including first row) subtracting from first row and the result should print below like the way shown in output file. Thanks Sid (11 Replies)
Discussion started by: ks_reddy
11 Replies

7. Shell Programming and Scripting

Awk to add selected row column data

Looks at the most efficient way to add up the column of data based off of the rows. Random data Name-Number-ID Sarah-2.0-15 Bob-6.3-15 Sally-1.0-10 James-1.0-10 Scotty-10.7-15 So I would select all those who have ID = 15 and then add up total number read - p "Enter ID number" Num ... (3 Replies)
Discussion started by: Ironguru
3 Replies

8. Shell Programming and Scripting

Sort a the file & refine data column & row format

cat file1.txt field1 "user1": field2:"data-cde" field3:"data-pqr" field4:"data-mno" field1 "user1": field2:"data-dcb" field3:"data-mxz" field4:"data-zul" field1 "user2": field2:"data-cqz" field3:"data-xoq" field4:"data-pos" Now i need to have the date like below. i have just... (7 Replies)
Discussion started by: ckaramsetty
7 Replies

9. Shell Programming and Scripting

Moving data from a specified column/row to another column/row

Hello, I have an input file like the following: 11_3_4 2_1_35 3_15__ _16989 Where '_' is a space. The data is in a table. Is there a way for the program to prompt the user for x1,y1 and x2,y2, where x1,y1 is the desired number (for example x=6 y=4 is a value of 4) and move to a desired spot... (2 Replies)
Discussion started by: jl487
2 Replies

10. Shell Programming and Scripting

row to column and position data in to fixed column width

Dear friends, Below is my program and current output. I wish to have 3 or 4 column output in order to accomodate in single page. i do have subsequent command to process after user enter the number. Program COUNT=1 for MYDIR in `ls /` do VOBS=${MYDIR} echo "${COUNT}. ${MYDIR}" ... (4 Replies)
Discussion started by: baluchen
4 Replies
Login or Register to Ask a Question