Sponsored Content
Top Forums Shell Programming and Scripting Sorting multi-column values from a specific file Post 302455499 by agama on Tuesday 21st of September 2010 09:59:29 PM
Old 09-21-2010
I'm not familiar with the syntax of churl, but assume that you can fetch the XML into a file to parse with awk. This is an example of one way to accomplish your task.

Code:
#!/usr/bin/env ksh

awk -v RS=">" '                      # we dont need closing tag mark; make it the record seperator
        /Percent/ {                    # data we are interested in has this field
                data = 0;
                gsub( " = ", "=" );             # easier to work with if there are no spaces round equal signs
                gsub( "\"", "" );               # for this case we dont expect blanks in the value so ditch quote marks
                for( i = 1; i < NF; i ++ )     # for each token that is var=value
                {
                        if( (x = split( $(i), a, "=" )) == 2 )   # split and save the value
                        {
                                data++;           # may not be necessary, but safe
                                var[a[1]] = a[2];
                        }
                }

                if( data )                    # if we saw data, print it
                {
                        printf( "%c %6.3f %6.3f%%\n", 65+idx, var["Price"], var["Percent"]);
                        idx++;
                }
        }' <current.xml

Change the printf() statement to print it in the format you need.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Assistance with combining, sorting and saving multi files into one new file

Good morning. I have a piece of code that is currently taking multiple files and using the CAT.exe command to combine into one file that is then sorted in reverse order based on the 3rd field of the file, then displayed on screen. I am trying to change this so that the files are being combined into... (4 Replies)
Discussion started by: jaacmmason
4 Replies

2. UNIX for Dummies Questions & Answers

Switching the values in a specific column of a text file

Hi, I have a space de-limited text file. In the fifth column, I would like to switch "1"s with "2"s. How do I go about doing that? Thanks! Sample input: 0 311000259 0 0 1 1 0 311000397 0 0 1 2 0 311000491 0 0 2 1 0 311000516 0 0 2 1 0 311000541 0 0 1 1 0 311000558 0 0 2 1 0 311000566 0... (1 Reply)
Discussion started by: evelibertine
1 Replies

3. Shell Programming and Scripting

How to substract selective values in multi row, multi column file (using awk or sed?)

Hi, I have a problem where I need to make this input: nameRow1a,text1a,text2a,floatValue1a,FloatValue2a,...,floatValue140a nameRow1b,text1b,text2b,floatValue1b,FloatValue2b,...,floatValue140b look like this output: nameRow1a,text1b,text2a,(floatValue1a - floatValue1b),(floatValue2a -... (4 Replies)
Discussion started by: nricardo
4 Replies

4. UNIX for Dummies Questions & Answers

Sorting columns for specific values

Dear All, i have a column with values in excel table: ATGC22327-p66 ATGC15922-p239 ATGC12710-p21743567 ATGC08037-p186 ATGC07969-p173 ATGC07345-p48534 ATGC02767-p254234 ATGC02124-p2177451 ATGC02124-p1459 ATGC01930-p3005 I need to... (6 Replies)
Discussion started by: AAWT
6 Replies

5. Shell Programming and Scripting

Extract values from a specific column to the end

Hello friends, I have a text file with many columns (no. columns vary from row to row) separated by space. I need to collect all the values from 18th column to the end from each line and group them as pairs and then numbering like below.. 1. 18th-col-value 19th-col-value 2. 20th-col-value ... (5 Replies)
Discussion started by: prvnrk
5 Replies

6. Shell Programming and Scripting

Count specific column values

Hi all: quick question! I have the following data that resembles some thing like this: i am tired tired am i what is up hello people cool I want to count (or at least isolate) all of the unique elements in the 2nd column. I have tried this: cut -f 2 | uniq 'input' which does... (3 Replies)
Discussion started by: owwow14
3 Replies

7. Shell Programming and Scripting

Sum values of specific column in multiple files, considering ranges defined in another file

I have a file (let say file B) like this: File B: A1 3 5 A1 7 9 A2 2 5 A3 1 3 The first column defines a filename and the other two define a range in that specific file. In the same directory, I have also three more files (File A1, A2 and A3). Here is 10 sample lines... (3 Replies)
Discussion started by: Bastami
3 Replies

8. Shell Programming and Scripting

Sorting a specific column!

What im trying to do is sort the output by the number on the second column and than limit the result to only the first three lines. This is the code idlist="x23s52; f34233; 2343xs; 25x34; si342d" cntr=1 idcnt=$(print $nidlist |tr ';' '\n' |wc -l) numofgrps=0 while (($cntr <= $idcnt))... (3 Replies)
Discussion started by: ajetangay
3 Replies

9. Shell Programming and Scripting

Overwrite specific column in xml file with the specific column from adjacent line

I have an xml file dumped from rrd file, that I want to "patch" so the xml file doesn't contain any blank hole in the resulting graph of the rrd file. Here is the file. <!-- 2015-10-12 14:00:00 WIB / 1444633200 --> <row><v> 4.0419731265e+07 </v><v> 4.5045912770e+06... (2 Replies)
Discussion started by: rk4k
2 Replies

10. Programming

DB2 Query -Convert multi values from column to rows

Hi Team I am using DB2 artisan tool and struck to handle multi values present in columns that are comma(,) separated. I want to convert those column values in separate rows . For example : Column 1 Column2 Jan,Feb Hold,Sell,Buy Expected Result Column1 ... (3 Replies)
Discussion started by: Perlbaby
3 Replies
lreplace(n)						       Tcl Built-In Commands						       lreplace(n)

__________________________________________________________________________________________________________________________________________________

NAME
lreplace - Replace elements in a list with new elements SYNOPSIS
lreplace list first last ?element element ...? _________________________________________________________________ DESCRIPTION
lreplace returns a new list formed by replacing one or more elements of list with the element arguments. first and last are index values | specifying the first and last elements of the range to replace. The index values first and last are interpreted the same as index values | for the command string index, supporting simple index arithmetic and indices relative to the end of the list. 0 refers to the first ele- | ment of the list, and end refers to the last element of the list. If list is empty, then first and last are ignored. If first is less than zero, it is considered to refer to before the first element of the list. For non-empty lists, the element indicated by first must exist or first must indicate before the start of the list. If last is less than first, then any specified elements will be inserted into the list at the point specified by first with no elements being deleted. The element arguments specify zero or more new arguments to be added to the list in place of those that were deleted. Each element argu- ment will become a separate element of the list. If no element arguments are specified, then the elements between first and last are sim- ply deleted. If list is empty, any element arguments are added to the end of the list. EXAMPLES
Replacing an element of a list with another: % lreplace {a b c d e} 1 1 foo a foo c d e Replacing two elements of a list with three: % lreplace {a b c d e} 1 2 three more elements a three more elements d e Deleting the last element from a list in a variable: % set var {a b c d e} a b c d e % set var [lreplace $var end end] a b c d A procedure to delete a given element from a list: proc lremove {listVariable value} { upvar 1 $listVariable var set idx [lsearch -exact $var $value] set var [lreplace $var $idx $idx] } SEE ALSO
list(n), lappend(n), lindex(n), linsert(n), llength(n), lsearch(n), lset(n), lrange(n), lsort(n), string(n) | KEYWORDS
element, list, replace Tcl 7.4 lreplace(n)
All times are GMT -4. The time now is 02:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy