Transpose using awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Transpose using awk
# 8  
Old 07-21-2009
Code:
nawk '
   BEGIN {
      RS=FS=OFS=""
   }
   {for(i=2;i<=NF;i++) gsub(" ", "", $i); print}' myFile


Last edited by vgersh99; 07-21-2009 at 07:28 PM..
# 9  
Old 07-21-2009
try..

Code:
-bash-3.2$ cat test
<?xml version="1.0" ?>
<REQUEST>
 <ID>874</ID>
 <TIMESTAMP>20090720062610</TIMESTAMP>
 <FLAG>Y</FLAG>
 <TO_FLAG>Y</TO_FLAG>
</REQUEST>

<?xml version="1.0" ?>
<REQUEST>
 <ID>000</ID>
 <TIMESTAMP>20090720061218</TIMESTAMP>
 <FLAG>Y</FLAG>
 <TO_FLAG>Y</TO_FLAG>
</REQUEST>
-bash-3.2$ echo `cat test` | sed 's/> </></g'
<?xml version="1.0" ?><REQUEST><ID>874</ID><TIMESTAMP>20090720062610</TIMESTAMP><FLAG>Y</FLAG><TO_FLAG>Y</TO_FLAG></REQUEST><?xml version="1.0" ?><REQUEST><ID>000</ID><TIMESTAMP>20090720061218</TIMESTAMP><FLAG>Y</FLAG><TO_FLAG>Y</TO_FLAG></REQUEST>
-bash-3.2$

# 10  
Old 07-22-2009
ryandegreat....thanks for the code, but i need the every <xml version...> tag in new line.
# 11  
Old 07-22-2009
Quote:
Originally Posted by new_ds_man
Still struggling with it, i am posting a complete picture of what i am facing trouble with......

The XML available for me is in the below format:
Code:
<?xml version="1.0" ?>
<REQUEST>
 <ID>874</ID>
 <TIMESTAMP>20090720062610</TIMESTAMP>
 <FLAG>Y</FLAG>
 <TO_FLAG>Y</TO_FLAG>
</REQUEST>
 
<?xml version="1.0" ?>
<REQUEST>
 <ID>000</ID>
 <TIMESTAMP>20090720061218</TIMESTAMP>
 <FLAG>Y</FLAG>
 <TO_FLAG>Y</TO_FLAG>
</REQUEST>

...
As mentioned in the above every new XML starts with the tag
Code:
<?xml version="1.0" ?>

Also something to be noted is that the XML tag contains spaces which should stay.
Code:
<?xml version="1.0" ?>

...

Assuming the xml tag format will remain ( as described ) constant: <?xml + spaces + version="Nr-dot-Nr" + spaces + ?> , this might be enough:


Code:
awk '/^<\?xml( |\t)+version="[0-9]+\.[0-9]+"( |\t)+\?>$/ && NR>1{ printf RS $0; next}
      NF { sub(/^[ \t]+/,""); print } END{ print RS }'   ORS=   filename


Output:

Code:
<?xml version="1.0" ?><REQUEST><ID>874</ID><TIMESTAMP>20090720062610</TIMESTAMP><FLAG>Y</FLAG><TO_FLAG>Y</TO_FLAG></REQUEST>
<?xml version="1.0" ?><REQUEST><ID>000</ID><TIMESTAMP>20090720061218</TIMESTAMP><FLAG>Y</FLAG><TO_FLAG>Y</TO_FLAG></REQUEST>

# 12  
Old 07-22-2009
Try this:

Code:
awk 'BEGIN{RS=ORS="\n\n"} $1=$1' file

Regards
# 13  
Old 07-22-2009
try this from franklin

Code:
awk 'BEGIN{RS=ORS="\n\n"} $1=$1' test | grep . | sed 's/> </></g'

or

Code:
echo `cat test`| sed -e 's|</REQUEST> |&\n|g' -e 's|> <|><|g'


Last edited by ryandegreat25; 07-22-2009 at 10:05 PM..
# 14  
Old 07-22-2009
Code:
 
sed 's/^ *//' file.xml | tr -d '\x0A'


Last edited by edidataguy; 07-22-2009 at 11:36 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Transpose table with awk

I am trying to format the table below to the output input: cand week sub1 sub2 sub3 sub4 joe 1 94.19 70.99 43.93 60.14 joe 2 94.07 51.02 41.07 38.92 joe 3 26.24 30.95 44.56 67.67 joe 4 72.36 60.92 40.78 83.25 joe 5 51 70.01 44.66 82.22... (7 Replies)
Discussion started by: aydj
7 Replies

2. Shell Programming and Scripting

Transpose using awk

Hi Friends, Very urgent requirement please do needful ASAP.. Input: |1||1|1||1|3||3|2||2|4||4|2||2|3||3|NA||0|5||5|NA||0|4||4|3||3 output: |1||1 |1||1 |3||3 |2||2 |4||4 |2||2 |3||3 |NA||0 |5||5 (4 Replies)
Discussion started by: bharat1211
4 Replies

3. Shell Programming and Scripting

Transpose data as rows using awk

Hi I have below requirement, need help One file contains the meta data information and other file would have the data, match the column from file1 and with file2 and extract corresponding column value and display in another file File1: CUSTTYPECD COSTCENTER FNAME LNAME SERVICELVL ... (1 Reply)
Discussion started by: ravlapo
1 Replies

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

5. Shell Programming and Scripting

Transpose column to row - awk

Hi there, I have a small csv file example below: source,cu_001,cu_001_volume,cu_001_mass,cu_002,cu_002_volume,cu_002_mass,cu_003,cu_003_volume,cu_003_mass ja116,1.33,3024000,9374400,1.54,3026200,9375123,1.98,3028000,9385512 I want to transpose columns to rows starting at the second... (3 Replies)
Discussion started by: theflamingmoe
3 Replies

6. Shell Programming and Scripting

Complex transpose awk script

Hello to all in forum, Maybe an awk expert could help me with this complex task for me. I have the input shown below and I would like to get the output as follow: - I would like the output separated by commas. - The header is fixed and will be the same always. - For the lines containing... (22 Replies)
Discussion started by: Ophiuchus
22 Replies

7. Shell Programming and Scripting

awk transpose rows to column

Need to transpose in awk rows to column like this: input: A1,6,5,4 3,2,1, A2,8,7,9,10,11,12,13,14 A3,1,2,3,5,7,8,9 A4,9,4,8,1,5,3, output: A1,1 A1,2 A1,4 ... A2,7 A2,8 ... A3,1 A3,2 ... A4,1 A4,3 (5 Replies)
Discussion started by: sdf
5 Replies

8. Shell Programming and Scripting

How can i transpose this rerult by using awk?

From>>> ATOM 1 ca 2 o 3 h 4 h 5 o dE/dx 0.2057422D-01 0.2463722D-01-0.1068047D-01-0.1495280D-01-0.3725362D-02 dE/dy -0.7179106D-02-0.1554542D-01 0.1016889D-01 0.3268502D-02-0.4888578D-01 dE/dz -0.5600872D-02 0.3110649D-01-0.4088230D-02-0.2295107D-01-0.2832048D-01 ATOM 6 h 7 h 8 o 9 h 10 h... (1 Reply)
Discussion started by: wanchem
1 Replies

9. Shell Programming and Scripting

How to transpose a table of data using awk

Hi. I have this data below:- v1 28 14 1.72414 1.72414 1.72414 1.72414 1.72414 v2 77 7 7.47126 6.89655 6.89655 6.89655 6.89655 v3 156 3 21.2644 21.2644 20.6897 21.2644 20.6897 v4 39 3 1.72414 1.72414 1.72414 1.72414 1.72414 v5 155 1 21.2644 23.5632 24.1379 23.5632 24.1379 v6 62 2 2.87356... (2 Replies)
Discussion started by: ahjiefreak
2 Replies

10. Shell Programming and Scripting

How to transpose data elements in awk

Hi, I have an input data file :- Test4599,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,2,Rain Test90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,Not Rain etc.... I wanted to transpose these data to:-... (2 Replies)
Discussion started by: ahjiefreak
2 Replies
Login or Register to Ask a Question