09-18-2008
Convert Columns to Rows in a File
Hi
I have a input file in the format
ABC,111,2008Q2, 49K
ABC,111,2008Q3, 0K
ABC,111,2008Q4, 0K
ABC,222,2008Q2, 49K
ABC,222,2008Q3, 0K
ABC,222,2008Q4, 0K
XYZ,111,2008Q2, 49K
XYZ,111,2008Q3, 0K
XYZ,111,2008Q4, 0K
XYZ,222,2008Q2, 49K
XYZ,222,2008Q3, 0K
XYZ,222,2008Q4, 0K
The output file format should be
ABC
------------------
111
2008Q2 49K
2008Q3 0K
2008Q4 0K
222
2008Q2 49K
2008Q3 0K
2008Q4 0K
XYZ
------------------
111
2008Q2 49K
2008Q3 0K
2008Q4 0K
222
2008Q2 49K
2008Q3 0K
2008Q4 0K
This is the code that i came up with.
echo "" > data.txt
ini_var=`cat list.txt | cut -d "," -f1 | head -n 1`
echo $ini_var >> data.txt
echo "--------------------" >> data.txt
cat list.txt | \
while read line
do
var=`echo $line | cut -d "," -f1`
test "$ini_var" = "$var"
status_chk=$?
if [ $status_chk -eq 0 ]
then
hier_var=`echo $line | cut -d"," -f2`
qtr_var=`echo $line | cut -d"," -f3`
val_var=`echo $line | cut -d"," -f4`
echo "$hier_var $qtr_var $val_var " >> data.txt
else
ini_var="$var"
echo " " >> data.txt
echo $ini_var >> data.txt
echo "--------------------" >> data.txt
hier_var=`echo $line | cut -d"," -f2`
qtr_var=`echo $line | cut -d"," -f3`
val_var=`echo $line | cut -d"," -f4`
echo "$hier_var $qtr_var $val_var " >> data.txt
fi
done
----------------------------
My Code output:
ABC
------------------
111 2008Q2 49K
111 2008Q3 0K
111 2008Q4 0K
222 2008Q2 49K
222 2008Q3 0K
222 2008Q4 0K
Please let me know, how i can get the desired output.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I need a shell script for below requirement
Input file
P1 - 173310
P2 - 173476
P3 - 173230
P4 - 172737
P1 - 173546
P2 - 173765
P3 - 173876
P4 - 172989
Out put file
P1 173310 173546
P2 173476 173765
P3 173230 173876
P4 172737 172989
Suresh (6 Replies)
Discussion started by: suresh3566
6 Replies
2. Shell Programming and Scripting
Hi guys
Could anyone advise me how to convert my rows into columns from a file
My file would be similar to this:
A11 A12 A13 A14 A15 ... A1n
A21 A22 A23
A31
A41
A51
...
Am1 Am2 Am3 Am4 Am5 ... Amn
The number of rows is not the same to the number of columns
Thanks in advance (2 Replies)
Discussion started by: loperam
2 Replies
3. Shell Programming and Scripting
hi,
Apologies if this has been covered.
I have requirement where i have to convert a single column into multiple column.
My data will be like this -
2
3
4
5
6
Output required -
2 3 4 5 6 (1 Reply)
Discussion started by: Nishithinfy
1 Replies
4. Shell Programming and Scripting
hi,
i have the file as below:
abc
def
ghi
jkl
i want the output as
abc,def,ghi,jki
please reply,
Thanks (4 Replies)
Discussion started by: namitai
4 Replies
5. Shell Programming and Scripting
Hello,
I have a huge tab delimited file with around 40,000 columns and 900 rows I want to convert columns to a row.
INPUT file look like this.
the first line is a headed of a file.
ID marker1 marker2 marker3 marker4
b1 A G A C ... (5 Replies)
Discussion started by: ryan9011
5 Replies
6. Shell Programming and Scripting
Hi!
Does anybody help me in converting following data:
INPUT looks like this:
20. 100.
30 200.
40. 400.
50. 100.
60. 200.
70. 400.
80. 200.
150. 210.
30. 100.
OUTPUT should look like this:
20. 100. 30 200. 40. 400. 50. 100.
60. 200. 70.... (5 Replies)
Discussion started by: lovelinux
5 Replies
7. Shell Programming and Scripting
Hi Gurus,
How to convert rows in to columns using linux shell scripting
Input is like (sample.txt)
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
YZA
BCD
output should be (sampleoutput.csv)
ABC,DEF,GHI,JKL,MNO
PQR,STU,VWX,YZA,BCD (2 Replies)
Discussion started by: infasriniit
2 Replies
8. Shell Programming and Scripting
Hi Everyone,
Could someone shed some lights on how to convert the records in rows form into column basis.
172.29.59.12
IBM,8255-E8B
102691P
8
65536 MB
6100-04-11-1140
172.29.59.15
IBM,8255-E8B
102698P
4
45056 MB
6100-04-11-1140
IP SYS MODEL ... (6 Replies)
Discussion started by: ckwan
6 Replies
9. Shell Programming and Scripting
I am looking to print the data in columns and after every 3 words it should be a new row.
cat example.out | awk 'END { for (i = 0; ++i < m;) print _;print _ }{ _ = _ x ? _ OFS $1 : $1}' m=1| grep -i INNER
I am looking to print in a new line after every 3 words.
... (2 Replies)
Discussion started by: lazydev
2 Replies
10. Shell Programming and Scripting
hi folks,
I have a sample data like what is shown below:
1,ID=1000
1,Org=CedarparkHospital
1,cn=john
1,sn=doe
1,uid=User001
2,uid=User002
2,ID=2000
2,cn=steve
2,sn=jobs
2,Org=Providence
I would like to convert it into the below format:
1,1000,CedarparkHospital,john,doe,User001... (11 Replies)
Discussion started by: vskr72
11 Replies
LEARN ABOUT PHP
stream_copy_to_stream
STREAM_COPY_TO_STREAM(3) 1 STREAM_COPY_TO_STREAM(3)
stream_copy_to_stream - Copies data from one stream to another
SYNOPSIS
int stream_copy_to_stream (resource $source, resource $dest, [int $maxlength = -1], [int $offset])
DESCRIPTION
Makes a copy of up to $maxlength bytes of data from the current position (or from the $offset position, if specified) in $source to $dest.
If $maxlength is not specified, all remaining content in $source will be copied.
PARAMETERS
o $source
- The source stream
o $dest
- The destination stream
o $maxlength
- Maximum bytes to copy
o $offset
- The offset where to start to copy data
RETURN VALUES
Returns the total count of bytes copied.
CHANGELOG
+--------+------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+------------------------------+
| 5.1.0 | |
| | |
| | Added the $offset parameter |
| | |
+--------+------------------------------+
EXAMPLES
Example #1
A stream_copy_to_stream(3) example
<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');
echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt
";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt
";
?>
SEE ALSO
copy(3).
PHP Documentation Group STREAM_COPY_TO_STREAM(3)