transposing lines to columns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting transposing lines to columns
# 1  
Old 09-05-2012
transposing lines to columns

Okay folks, here's a question. I tried searching but couldn't find exactly what I needed.

I have a text file (excerpt below). This text file is an extract I did from several hundred pages of datasheets using grep so I could look only at the site history for each site. The problem is that there is a single row for EACH site visit. I want to condense this list so that there is one line per site, and multiple instances (columns) of "site visits" for each site.

There are a total of 47 unique site names, and each site has between 3 and 13 instances of "history" (i.e. the number of times the site has been visited), and each "history has 3 items ("date," "condition," and "report by")

So I'd go from this:
Code:
HS1415  HISTORY     - Date     Condition        Report By
HS1415  HISTORY     - 1972     MONUMENTED       CADH
HS1415  HISTORY     - 1972     GOOD             NGS
HS1415  HISTORY     - 20040519 GOOD             CADT
HS1415  HISTORY     - 20110214 MARK_NOT_FOUND   BOR
HS1412  HISTORY     - Date     Condition        Report By
HS1412  HISTORY     - 1972     MONUMENTED       CADH
HS1412  HISTORY     - 1972     GOOD             NGS
HS1412  HISTORY     - 19881117 GOOD             NGS
HS1412  HISTORY     - 20040519 GOOD             CADT
HS1412  HISTORY     - 20110928 GOOD             ATKNA


To this:
Code:
HS1415 HISTORY     - Date     Condition        Report By HISTORY     - 1972     MONUMENTED       CADH HISTORY     - 1972     GOOD             NGS (etc...)
HS1412 HISTORY     - Date     Condition        Report By HISTORY     - 1972     MONUMENTED       CADH HISTORY     - 1972     GOOD             NGS (etc...)
(etc...)

I don't really care that "HISTORY" and a few other characters are repeated, that's easy to remove with awk. I just can't figure out how to transpose the lines of unique site names to multiple columns in a single row for each site name.

Thanks so much in advance

Last edited by Franklin52; 09-06-2012 at 04:20 AM.. Reason: Please use code tags for data and code samples
# 2  
Old 09-05-2012
You could do something like:
Code:
awk '
oldone && $1!=oldone {
   printf ("\n")
}
{
  printf ("%s", $0);
  oldone=$1;
}
END {
  printf ("\n");
}' inputfile

This User Gave Thanks to CarloM For This Post:
# 3  
Old 09-05-2012
Quote:
Originally Posted by CarloM
You could do something like:
Code:
awk '
oldone && $1!=oldone {
   printf ("\n")
}
{
  printf ("%s", $0);
  oldone=$1;
}
END {
  printf ("\n");
}' inputfile

AWESOME!!

Thanks so much, that's exactly what I needed.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Transposing rows to columns with multiple similar lines

Hi, I am trying to transpose rows to columns for thousands of records. The problem is there are records that have the same lines that need to be separated. the input file as below:- ID 1A02_HUMAN AC P01892; O19619; P06338; P10313; P30444; P30445; P30446; P30514; AC Q29680; Q29837;... (2 Replies)
Discussion started by: redse171
2 Replies

2. Shell Programming and Scripting

Transposing rows and columns (pivoting) using shell scripting

Here is the contents of an input file. A,1,2,3,4 10,aaa,bbb,ccc,ddd 11,eee,fff,ggg,hhh 12,iii,jjj,lll,mmm 13,nnn,ooo,ppp I wanted the output to be A 10 1 aaa 10 2 bbb 10 3 ccc 10 4 ddd 11 1 eee 11 2 fff 11 3 ggg 11 4 hhh ..... and so on How to do it in ksh... (9 Replies)
Discussion started by: ksatish89
9 Replies

3. Shell Programming and Scripting

transposing columns into rows

Hi, I need to transpose columns of my files into rows and save it as individual files. sample contents of the file below. 0.9120 0.7782 0.6959 0.6904 0.6322 0.8068 0.9082 0.9290 0.7272 0.9870 0.7648 0.8053 0.8300 0.9520 0.8614 0.6734 0.7910 0.6413 0.7126 0.7364 0.8491 0.8868 0.7586 0.8949... (8 Replies)
Discussion started by: ida1215
8 Replies

4. Shell Programming and Scripting

Help for a Perl newcomer! Transposing data from columns to rows

I have to create a Perl script which will transpose the data output from my experiment, from columns to rows, in order for me to analyse the data. I am a complete Perl novice so any help would be greatly appreciated. The data as it stands looks like this: Subject Condition Fp1 ... (12 Replies)
Discussion started by: Sarah_W
12 Replies

5. Shell Programming and Scripting

Transposing Repeated Rows to Columns.

I have 1000s of these rows that I would like to transpose to columns. However I would like the transpose every 3 consecutive rows to columns like below, sorted by column 3 and provide a total for each occurrences. Finally I would like a grand total of column 3. 21|FE|41|0B 50\65\78 15... (2 Replies)
Discussion started by: ravzter
2 Replies

6. Shell Programming and Scripting

awk, string as record separator, transposing rows into columns

I'm working on a different stage of a project that someone helped me address elsewhere in these threads. The .docs I'm cycling through look roughly like this: 1 of 26 DOCUMENTS Copyright 2010 The Age Company Limited All Rights Reserved The Age (Melbourne, Australia) November 27, 2010... (9 Replies)
Discussion started by: spindoctor
9 Replies

7. Shell Programming and Scripting

Transposing rows into columns

I have a file like the one given below P1|V1|V2 P1|V1|V3 P1V1|V2 P2|V1|V4 P2|V2|V6 P2|V1|V4 I want it convert to P1|V1|V2|V2|V3 P2|V1|V4|V2|V6 2nd and 3rd column should be considered as together and so the tird row is duplicate Any ideas? (3 Replies)
Discussion started by: prasperl
3 Replies

8. Shell Programming and Scripting

Transposing columns with awk

I want a sweet simple time efficient awk script in online which gets output 001_r 0.0265185 0.0437049 0.0240642 0.0310264 0.0200482 0.0146746 0.0351344 0.0347856 0.036119 1.49 firstcoloumnvalue allvaluesof 'c' in one row 001_r : 002_r c: 0.0265185 N: 548 001_r : 007_r c:... (5 Replies)
Discussion started by: phoenix_nebula
5 Replies

9. Shell Programming and Scripting

Rows to columns transposing and reformating.

----File attached. Input file =========== COL_1 <IP Add 1> COL_2 <Service1> COL_3 <ABCDEFG> COL_4 <IP ADD:PORT> COL_4 <IP ADD:PORT> COL_1 <IP Add 2> COL_2 <Service2> COL_2 <Service3> COL_2 <Service4> COL_3 <AAAABBB> COL_4 <IP ADD:PORT> COL_4 <IP ADD:PORT> COL_4 <IP... (27 Replies)
Discussion started by: bluethunder
27 Replies

10. Shell Programming and Scripting

Transposing column to row, joining with another file, then sorting columns

Hello! I am very new to Linux and I do not know where to begin... I have a column with >64,000 elements (that are not in numberical order) like this: name 2 5 9 . . . 64,000 I would like to transpose this column into a row that will later become the header of a very large file... (2 Replies)
Discussion started by: doobedoo
2 Replies
Login or Register to Ask a Question