Sponsored Content
Top Forums Shell Programming and Scripting how to rearrange a matrix with awk Post 302715285 by elixir_sinari on Sunday 14th of October 2012 10:51:50 AM
Old 10-14-2012
With gawk:
Code:
gawk 'NR==1{for(i=1;i<=NF;i++) y[i+1]=$i;next}
{x[++n]=$1;for(i=2;i<=NF;i++) data[$1,y[i]]=$i}
END{
nx=asort(x);ny=asort(y)
for(i=1;i<=nx;i++)
{
 if(i==1)
 {
  for(j=0;j<=ny;j++)
   print y[j]
  printf "\n"
 }
 print x[i]
 for(j=1;j<=ny;j++)
  print data[x[i],y[j]]
 printf "\n"
}}' ORS='\t' matrix_file

And, if you don't have gawk, it can also be done with other awks with a user-defined function to sort arrays. Let me know if that is the case with you.

Last edited by elixir_sinari; 10-14-2012 at 11:57 AM..
This User Gave Thanks to elixir_sinari For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need help in AWK;Search String and rearrange columns

Hi AWK Experts, file1.txt contains: 29b11b820ddcc:-|OHad.perWrk|spn_id=AH111|spn_ordtyp=MY_REQ|msg_typ=ah.ntf.out|spn_ordid=928176|spn_nid=3|msg_strt=1175615334703|msg_que=oput|diff=371|17:48:55,074|17:48:55,084|10 file2.txt contains:... (2 Replies)
Discussion started by: spring_buck
2 Replies

2. UNIX for Dummies Questions & Answers

Rearrange columns and rows with awk

Hello, I have the following problem I have two columns with numbers arranged as follows: x1 y1 x2 y2 .... .... x250 y250 Now I need them arranged as follows: "string a" x1 y1 x1 y2 "string b" "string a" x1 y2 x2 y2 (3 Replies)
Discussion started by: Tom46
3 Replies

3. Shell Programming and Scripting

awk matrix problem

hi there I'm very new in programing and i've started with awk. I'm processing 200 data files and I need to do some precessing on them. The files have 3 columns with N-lines for each line a have on the first and second value is the same for all the files and only the third is variable. like... (2 Replies)
Discussion started by: philstar
2 Replies

4. Shell Programming and Scripting

Using awk to rearrange data according to date

Hi, I have a large data frame as shown below, where data is separated into years. 10 May 2011 Created: 10 May 11 15:05 GMT Scale: SIO-2005 and others GC-MD, Cape Grim, Tasmania, Lat.: 40.68S, Lon.: 144.69E, Alt: 94m above sea level You can use the following format in Fortran to read data... (4 Replies)
Discussion started by: gd9629
4 Replies

5. Shell Programming and Scripting

awk? adjacency matrix to adjacency list / correlation matrix to list

Hi everyone I am very new at awk but think that that might be the best strategy for this. I have a matrix very similar to a correlation matrix and in practical terms I need to convert it into a list containing the values from the matrix (one value per line) with the first field of the line (row... (5 Replies)
Discussion started by: stonemonkey
5 Replies

6. Shell Programming and Scripting

Summing up a matrix using awk

Hi there, If anyone can help me sorting out this small task would be great. Given a matrix like the following: 100 3 3 3 3 3 ... 200 5 5 5 5 5 ... 400 1 1 1 1 1 ... 500 8 8 8 8 8 ... 900 0 0 0 0... (5 Replies)
Discussion started by: JRodrigoF
5 Replies

7. Shell Programming and Scripting

Using awk to rearrange fields

Hi, I am required to arrange columns of a file i.e make the 15th column into the 1st column. I am doing awk 'begin {fs=ofs=","} {print $15,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14}' ad.data>ad.csv the problem is that column 15 gets to column 1 but it is not comma separated with the... (10 Replies)
Discussion started by: seddoubt
10 Replies

8. Shell Programming and Scripting

Rearrange Lines with awk

I need to rearrange the lines in the input file in the example below: Input: LG1 R500 A-170 F1:81 F1:22 F2:32 F1:71 LG1 R700 A-203 F2:17 E2:18 LG1 R700 B-224 E1:9 LG2 R500 C-235 E2:9 F2:17 Output: LG1 R500 A-170 F1:81 LG1 R500 A-170 F1:22 LG1 R500 A-170 F2:32 LG1 R500 A-170... (2 Replies)
Discussion started by: aydj
2 Replies

9. Shell Programming and Scripting

Use awk to count and rearrange entries

How can I use awk to count the occurrence of field 2 and rearrange the output like below: Input: OA1 FM AA OA0 FM CC ON0 FM CC FN1 FN BB OY1 FN BB OY2 FN CC OY3 FN CC YT0 FM AA KW1 FN CC KW3 FM BB YT4 FM AA FN2 FT BB OA3 FT AA ON7 FM BB (14 Replies)
Discussion started by: aydj
14 Replies

10. UNIX for Dummies Questions & Answers

Transpose matrix, and rearrange columns common with another file

This is my first post, I apologize if I have broken rules. Some assistance with the following will be very helpful. I have a couple of files, both should ultimately have common columns only, arranged in the same order. This file needs to be transposed, to bring the rows to columns ... (2 Replies)
Discussion started by: abh.kumar
2 Replies
DOCBOOK2GJOTS(1)					      General Commands Manual						  DOCBOOK2GJOTS(1)

NAME
docbook2gjots - Convert a DOCBOOK file to gjots format (on stdout) SYNOPSIS
docbook2gjots [ DOCBOOK-file ] DESCRIPTION
docbook2gjots converts a DOCBOOK XML file into gjots format. docbook2gjots uses gawk(1) to perform the conversion. <preface>, <chapter>, <section>, <sect1>, <sect2>, <sect3> and <sect4> tags are used to define NewEntry and NewFolder boundaries. They should definitely have <title> tags. This is a quick and dirty hack using gawk(1) and does no formal checking of XML or SGML syntax nor does it validate against the DOCBOOK DTD. Consequently, if the syntax of the file is broken the conversion will probably fail. It is intended that a round-trip can be made so that gjots(1) can be used as a tool at all stages of DOCBOOK production - mainly as an out- line processor to help the author organise and order the work. A document may well start its life in gjots(1) as the initial thoughts are marshalled. As the document forms up, it can be converted to DOCBOOK with the following command which automatically adds tags such as <?xml...>, <para> etc: gjots2docbook -b file.gjots >file.xml docbook2pdf file.xml Or, starting with an existing DOCBOOK file: docbook2gjots file.xml >file.gjots In the latter case, the document will already have a lot of DOCBOOK tags so to convert back to docbook, add the -e and -p options: gjots2docbook -b -p -e file.gjots >file.xml docbook2pdf file.xml AUTHOR
Written by Bob Hepple <bhepple@freeshell.org> http://bhepple.freeshell.org/gjots COPYRIGHT
Copyright (c) 2002 Robert Hepple This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PAR- TICULAR PURPOSE. SEE ALSO
gjots(1), gjots2html(1), gjots2docbook(1) DOCBOOK2GJOTS(1)
All times are GMT -4. The time now is 12:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy