Sponsored Content
Top Forums Shell Programming and Scripting Rows to Columns - File Transpose Post 302375592 by jsmithstl on Saturday 28th of November 2009 11:33:51 AM
Old 11-28-2009
Bluethunder... It looks like you've added a new problem to this post. You really should start a new thread to prevent confusion.

---------- Post updated at 10:33 AM ---------- Previous update was at 10:29 AM ----------

46019:

Code:
#!/usr/bin/perl

use strict;

my @a_empdata;
my %h_empdata;
my $esl;
my $val;
my $line;
my $i;

open EMPFILE, "<esl.dat"
  or die "can't open file: $!";

@a_empdata = <EMPFILE>;

close EMPFILE
  or die "can't close file: $!";

print "emp\tsal\tloc\n";

$i = 0;

while ($a_empdata[$i])
{
   $line = $a_empdata[$i];
   chomp($line);
   $esl = (split '=', $line) [0];
   $val = (split '=', $line) [1];
   if ( $esl eq "emp" )
   {
      $h_empdata{'emp'} = $val;
      if ( $a_empdata[$i+1] =~ m/emp/ )
      {
         $h_empdata{'sal'} = " ";
         $h_empdata{'loc'} = " ";
         $i++;
      }
      elsif ( $a_empdata[$i+1] =~ m/loc/ )
      {
         $h_empdata{'sal'} = " ";
         $h_empdata{'loc'} = (split '=', $a_empdata[$i+1]) [1];
         chomp($h_empdata{'loc'});
         $i = $i + 2;
      }
      elsif ( $a_empdata[$i+1] =~ m/sal/ )
      {
         $h_empdata{'sal'} = (split '=', $a_empdata[$i+1]) [1];
         chomp($h_empdata{'sal'});
         if ( $a_empdata[$i+2] =~ m/loc/ )
         {
            $h_empdata{'loc'} = (split '=', $a_empdata[$i+2]) [1];
            chomp($h_empdata{'loc'});
            $i = $i + 3;
         }
         else
         {
            $h_empdata{'loc'} = " ";
            $i = $i + 2;
         }
      }
   }
   elsif ( $esl eq "sal" )
   {
      $h_empdata{'sal'} = $val;
      $h_empdata{'emp'} = " ";
      if ( $a_empdata[$i+1] =~ m/loc/ )
      {
         $h_empdata{'loc'} = (split '=', $a_empdata[$i+1]) [1];
         chomp($h_empdata{'loc'});
         $i = $i + 2;
      }
      else
      {
         $h_empdata{'loc'} = " ";
         $i++;
      }
   }
   elsif ( $esl eq "loc" )
   {
      $h_empdata{'loc'} = $val;
      $h_empdata{'emp'} = " ";
      $h_empdata{'sal'} = " ";
      $i++;
   }
   print "$h_empdata{'emp'}\t$h_empdata{'sal'}\t$h_empdata{'loc'}\n";
   undef %h_empdata;
}

I used tabs in the print to format the output.
Code:
./esl.pl
emp     sal     loc
1       2       abc
2       21
        22      xyz
5               abc

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Transpose multipe columns to rows and adding headers

Hi, I found the following awk script to transpose multiple (3) columns to multiple rows: #=== BEGIN {FS=","} { for (i=1;i<=NF;i++) { arr=$i; if(nf<= NF) nf=NF; } nr=NR } END { for(i=1;i<=nf;i++) { (8 Replies)
Discussion started by: Gery
8 Replies

2. Shell Programming and Scripting

Transpose columns to Rows : Big data

Hi, I did read a few posts on the subjects, tried out a few solutions, but did not solve my problem. https://www.unix.com/302121568-post11.html https://www.unix.com/shell-programming-scripting/137953-large-file-columns-into-rows-etc-4.html Please help. Problem very similar to the second link... (15 Replies)
Discussion started by: genehunter
15 Replies

3. 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

4. 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

5. 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

6. Shell Programming and Scripting

Transpose Data from Columns to rows

Hello. very new to shell scripting and would like to know if anyone could help me. I have data thats being pulled into a txt file and currently have to manually transpose the data which is taking a long time to do. here is what the data looks like. Server1 -- Date -- Other -- value... (7 Replies)
Discussion started by: Mikes88
7 Replies

7. Shell Programming and Scripting

Columns to Rows - Transpose - Special Condition

Hi Friends, Hope all is well. I have an input file like this a gene1 10 b gene1 2 c gene2 20 c gene3 10 d gene4 5 e gene5 6 Steps to reach output. 1. Print unique values of column1 as column of the matrix, which will be a b c (5 Replies)
Discussion started by: jacobs.smith
5 Replies

8. 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

9. 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

10. 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
DCKEY(1)					       DICOM PS3 - Extract attribute values						  DCKEY(1)

NAME
dckey - ACR/NEMA DICOM PS3 ... Extract attribute values SYNOPSIS
dckey [ -ignorereaderrors ] [ -v|verbose ] [ -filename ] [ -describe ] [ -brief ] [ -d|decimal ] [ -key|k elementname|(0xgggg,0xeeee) ] ... DESCRIPTION
dckey reads the named dicom input file and displays the values of the selected attributes. Binary attributes are written in hexadecimal with a preceding "0x" and numeric string attributes are written in decimal as they are encoded, unless the -decimal option is specified. OPTIONS
The attribute values, description and verbose output go to standard error. The basic input switches are described in dcintro(1). Options specific to this program are: -describe Display the tag, name, value representation and value length of the attribute. -brief Display the keyword of the attribute, and equals sign, and then the value, for use in scripts that automatically extract multiple values in the same dckey invocation. Implies -noerror. -ignorereaderrors Attempt to extract key values even if errors encountered whilst parsing DICOM file. -noerror Do not report an error if the requested attribute was not found, just an empty value or line. Implied by -brief. -d|decimal Display the first (or only) value of a numeric attribute as a decimal value. -k|key elementname|(0xgggg,0xeeee) Add a key to the list of attributes to be extracted. The attribute may also be specified as a hexadecimal pair of the form (0xgggg,0xeeee), which also allows private attributes to be fetched. -filename Show the name of the file supplied in the arguments; a hyphen will be reported if no filename was supplied. ENVIRONMENT
EXAMPLES
% dckey -key Rows -key Columns -key ImageLocation -describe test.dc3 (0x0028,0x0010) US Rows VR=<US> VL=<0x0002> [0x0100] (0x0028,0x0011) US Columns VR=<US> VL=<0x0002> [0x0100] Error - Not found - (0x0028,0x0200) US Image Location % dckey -k Rows -k ImagePositionPatient -k StudyDate -k StudyTime -k SOPClassUID test.dc3 1.2.840.10008.5.1.4.1.1.2 1996.04.17 19:38:00 45.000000-120.000000120.000000 0x0200 % dckey -d -k Rows test.dc3 512 % dckey -brief -k Rows -k Columns test.dc3 Rows=0x200 Columns=0x200 FILES
SEE ALSO
dcintro(1),dctable(1) AUTHOR
Copyright (C) 1993-2010. David A. Clunie DBA PixelMed Publishing. All rights reserved. BUGS
Attempts to extract sequences or OB,OW attributes may fail nastily. The order in which the attributes are extracted and written is not the same order as they are specified on the command line, and should not be depended on. The -describe and other options cannot be used at the same time. The -decimal option uses a double conversion before displaying the value and there may be sign extension and precision issues with some values. The reading of the attributes from the DICOM file will not proceed past the top level Pixel Data attribute, in order to accelerate the speed of reading. DICOM PS3 19 November 2008 DCKEY(1)
All times are GMT -4. The time now is 01:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy