Find and replace variables using a csv table


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and replace variables using a csv table
# 8  
Old 12-06-2012
When trying rdrtx1's script in message #6 in this thread on OS X, I get errors about printf not recognizing %V as a format specifier.

The following script seems to work with your input files. (Note that I also changed the 01-01-2012 in the 1st line in your template to %VAR_DATE_1% and added a line to your .csv file for testing purposes. If you don't make this change to the template, it won't affect your output.) For testing I used the following script:
Code:
#!/bin/ksh
awk -F ', ' 'FNR==NR{
        for(i = 1; i < NF; i++)
                v["VAR_" $1 "_" i] = $(i + 1)
        next
}
{       for(i = 2; i <= NF; i += 2)
                if($i in v)
                        $i = v[$i]
        print $0
}' prices.csv FS='%' OFS="" template.txt

When I run this script given a file named prices.csv that contains:
Code:
DATE, 12-06-2012
USOR2GB, 10.25, 9.23, 8.47, 8.21
USOR4GB, 10.55, 9.53, 8.69, 8.58
USOR8GB, 10.75, 9.83, 8.97, 8.91

and a file named template.txt that contains:
Code:
                    Rateband prices per %VAR_DATE_1%
=========================================
PRODUCT with 5+ 10+ 50+ and 100+ prices
=========================================
Original 2GB: %VAR_USOR2GB_1% %VAR_USOR2GB_2% %VAR_USOR2GB_3% %VAR_USOR2GB_4%
Original 4GB: %VAR_USOR4GB_1% %VAR_USOR4GB_2% %VAR_USOR4GB_3% %VAR_USOR4GB_4%
Original 8GB: %VAR_USOR8GB_1% %VAR_USOR8GB_2% %VAR_USOR8GB_3% %VAR_USOR8GB_4%

it produces the output:
Code:
                    Rateband prices per 12-06-2012
=========================================
PRODUCT with 5+ 10+ 50+ and 100+ prices
=========================================
Original 2GB: 10.25 9.23 8.47 8.21
Original 4GB: 10.55 9.53 8.69 8.58
Original 8GB: 10.75 9.83 8.97 8.91

Note, however, that this script will not work if your template file contains any other percent characters. If it does contain percent characters that are not included in macros that are to be expanded, a more complex script would be required.
This User Gave Thanks to Don Cragun For This Post:
# 9  
Old 12-06-2012
Hi Don,
Many thanks.
I just ran it on the actual xml template (Scribus sla file) and it works !
Great job.
Many thanks for your help.
Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Generate files and use csv data to replace multiple variables in a template

I have a source csv file consists of first field as variable name, and the rest are site-specific information (converted from excel file, where site -specific values in columns). I am trying to create a file for every site using a template and replace the multiple variables with values from the... (3 Replies)
Discussion started by: apalex
3 Replies

2. Shell Programming and Scripting

Update the table using values from a csv file

i want to run update query for oracle which is in up.sql taking values from a.csv. I have implemented shell script to do it. extn="perl" ls -1 | while read file do echo "$file,$extn" > a.csv done up.sql contains update file_list set filename=$1 where extn=$2; The code to update is... (2 Replies)
Discussion started by: millan
2 Replies

3. UNIX for Dummies Questions & Answers

Find & Replace identifiers using a conversion table

Hi ! I have input.tab with one column containing Item IDs under a number format (the second column is the Location of this item): Location Item ID rack1 12; 35; 43 rack35 23; 894; 5478; 98 etc... (The number of Items per row is variable. Item IDs in a same field are... (17 Replies)
Discussion started by: lucasvs
17 Replies

4. Shell Programming and Scripting

Convert file in csv or table

Hi there, i have a file like that in attachment (PLEVA3_280711_SAP.txt), i would extract some basic information from it and report in a new file or table like this: i try to use bash and i extract the single object in this way (see attach scriptino.sh), but i receive a strange... (5 Replies)
Discussion started by: alen192
5 Replies

5. UNIX for Dummies Questions & Answers

Storing data from a table into a csv file

Hi I need to write a bash script to take the data stored in 3 oracle tables .. and filter them and store the results in a csv file. It is an Oracle database Thank you (1 Reply)
Discussion started by: ladyAnne
1 Replies

6. Shell Programming and Scripting

Converting .xls into .csv and find & Replace

Hi All, Please give me the solution to the following ASAP. 1) Converting the .xls into .csv Script i tried, mv hello.xls hello.csv The above given script converting the .xls file into .csv successfully. But after i run the below unix command I am no able to open the .csv file, its giving... (4 Replies)
Discussion started by: velava
4 Replies

7. Shell Programming and Scripting

find & replace comma in a .csv file.

HI, Please find the text below. I receive a .csv file on server. I need the comma(,) in the second column to be replaced by a semi-colon( ; ). How to do it. Please help. Sample text: "1","lastname1,firstname1","xxxxxx","19/10/2009","23/10/2009","0","N","Leave"... (2 Replies)
Discussion started by: libin4u2000
2 Replies

8. Shell Programming and Scripting

csv to table one-liner

I've googled a lot on this, but could not fine a simple one-liner to do this. I have a .csv file that looks like this: Header one Header two Header three col1,col2,col3 short data, very long data, dataIf I use sed and change the comma to tab, being the colums of variable length I don't get a... (6 Replies)
Discussion started by: ahsog
6 Replies

9. UNIX for Dummies Questions & Answers

How do I read/find/replace fields in a csv datafile?

hello. I'm somewhat a novice here so please be patient. My stumbling block when loading csvs into ORACLE tables is this: I need to read a csv datafile, check several fields in each line, and if any of stated fields contain A ZERO only then replace it with a null/blank character. I had a... (9 Replies)
Discussion started by: MrCarter
9 Replies

10. Shell Programming and Scripting

HTML table to CSV

Hi !! I have HTML Tables through which i want to generate graphs, but for creating graphs i need the file in CSV format so can anyone can please help me in how can i convert my HTML table file to CSV format. Thanks in Advance (2 Replies)
Discussion started by: i_priyank
2 Replies
Login or Register to Ask a Question