Creating file contents using contents of another file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Creating file contents using contents of another file
# 8  
Old 02-24-2006
Hi,

I cannot install it because I am not the system admin. And I am using a server from the company. I guess I can't use Ruby. Smilie
# 9  
Old 02-24-2006
Hi,

I couldn't get the 2nd field into the output file. Can you please advise on how to add the 2nd field and so on?

Quote:
Originally Posted by vino
See the solution in Want to show files on web page

You need to do something similiar.

Something like this


Code:
HEADER='<?xml version="1.0"?>
<!DOCTYPE ALR [
        <!ENTITY gt "&amp;gt;">
        <!ENTITY lt "&amp;lt;">
        <!ENTITY quot "&amp;quot;">
]>
<datafile>
        <info ID="'

function header {

echo "$HEADER" > output.xml
echo "$1" >> output.xml
echo "\">" >> output.xml

}

Parse the country specific details as

Code:
while read line
do
CONTINENT=$(echo "$line" | awk -F, '{ print $1 }')
COUNTRY=$(echo "$line" | awk -F, '{ print $2 }')
.
.

header $ID
done < input.file

where header is the method given above.
# 10  
Old 02-24-2006
Show us what you have done so far.
# 11  
Old 02-24-2006
Quote:
Originally Posted by vino
Parse the country specific details as

Code:
while read line
do
CONTINENT=$(echo "$line" | awk -F, '{ print $1 }')
COUNTRY=$(echo "$line" | awk -F, '{ print $2 }')
.
.

header $ID
done < input.file

where header is the method given above.
Would be much better of as

Code:
IFS=","
while read conti country city id
do
CONT=$conti
COUNTRY=$country
CITY=$city
ID=$id
header $ID
done < input.file

# 12  
Old 02-24-2006
There are some changes in the requirements of the output file. One more fields needed.
There are also 2 more fields in the input file and the 2nd line is not needed.

This is what I have done:

Code:
#!/bin/ksh

HEADER='<?xml version="1.0"?>
<!DOCTYPE ALR [
        <!ENTITY gt "&amp;gt;">
        <!ENTITY lt "&amp;lt;">
        <!ENTITY quot "&amp;quot;">
]>
<datafile>
        <info ID="'

BODY1='                <info1>'
BODY2='                <info2> </info2>
                <info3>'
BODY3='                <info4>'
BODY4='                <info5>0</info5>
                <info6> </info6>
                <info7> </info7>
                <info8>'
BODY5='                <info9>some fixed data</info9>
                <info10>some fixed data</info10>
                <info11>some fixed data</info11>
        </info>
        <action>
                <attributes>
                        <attributkey id="011" >N</attributkey>
                        <attributkey id="106" >N</attributkey>
                        <attributkey id="114" >N</attributkey>
                        <attributkey id="119" >N</attributkey>
                </attributes>
                <comment> </comment>
        </action>
</datafile>'

INPUTFILE=/home/dir/input.csv
OUTPUTFILE=/home/dir/output.xml

function header {
	echo "$HEADER" > $OUTPUTFILE
	echo "$id" >> $OUTPUTFILE
	echo "\">" >> $OUTPUTFILE
}

function body1 {
	echo "$BODY1" >>$OUTPUTFILE
	echo "$continent" >>$OUTPUTFILE
	echo "</info1>" >>$OUTPUTFILE
}

function body2 {
	echo "$BODY2" >>$OUTPUTFILE
	echo "$country" >>$OUTPUTFILE
	echo "</info3>" >>$OUTPUTFILE
}

function body3 {
	echo "$BODY3" >>$OUTPUTFILE
	echo "$city" >>$OUTPUTFILE
	echo "</info4>" >>$OUTPUTFILE
}

function body4 {
	echo "$BODY4" >>$OUTPUTFILE
	echo "$date" >>$OUTPUTFILE
	echo "</info8>" >>$OUTPUTFILE
}

function body5 {
	echo "$BODY5" >>$OUTPUTFILE
}


IFS=;
while read continent country city id address date
do
	ID=$id
	CONTINENT=$continent
	COUNTRY=$country
	CITY=$city
             DATE=$date
	header $ID
	body1 $CONTINENT
	body2 $COUNTRY
	body3 $CITY
	body4 $DATE
	body5
done < $INPUTFILE

The input file contents:
Code:
continent;country;city,id;address;date
---------;-----------;----------------;----------;---------;--------
asia;japan;tokyo;123;apple road;12012000
europe;germany;munich;456;orange street;13072001
africa;eygpt;cairo;789;banana lane;06121999

# 13  
Old 02-24-2006
In

Code:
while read continent country city id address date
do
	ID=$id
	CONTINENT=$continent
	COUNTRY=$country
	CITY=$city
             DATE=$date
	header $ID
done < $INPUTFILE

do you know what header $ID means ?

You are invoking the function header with $ID as a parameter.

So inside the header function, this parameter $ID is accessible using the construct $@ or $1 ( anyway you like...)

So in your case, the header function has no idea what $id is. Hence it should be

Code:
function header {
	echo "$HEADER" > $OUTPUTFILE
	echo "$@" >> $OUTPUTFILE
	echo "\">" >> $OUTPUTFILE
}

Likewise, for all the other functions, you should follow suit.
# 14  
Old 02-24-2006
Hi,

I have tried with
Code:
function header {
	echo "$HEADER" > $OUTPUTFILE
	echo "$@" >> $OUTPUTFILE
	echo "\">" >> $OUTPUTFILE
}

but the parameters are not parsed from the input to the ouput file. I have the format of the output file without all the parameters.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Output file name and file contents of multiple files to a single file

I am trying to consolidate multiple information files (<hostname>.Linux.nfslist) into one file so that I can import it into Excel. I can get the file contents with cat *Linux.nfslist >> nfslist.txt. I need each line prefaced with the hostname. I am unsure how to do this. --- Post updated at... (5 Replies)
Discussion started by: Kentlee65
5 Replies

2. Shell Programming and Scripting

ksh Script, Reading A File, Grepping A File Contents In Another File

So I'm stumped. First... APOLOGIES... my work is offline in an office that has zero internet connectivity, as required by our client. If need be, I could print out my script attempts and retype them here. But on the off chance... here goes. I have a text file (file_source) of terms, each line... (3 Replies)
Discussion started by: Brusimm
3 Replies

3. Shell Programming and Scripting

Shell script (sh file) logic to compare contents of one file with another file and output to file

Shell script logic Hi I have 2 input files like with file 1 content as (file1) "BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt File 2 contents as fle(2) "BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt I want to get... (22 Replies)
Discussion started by: pottic
22 Replies

4. Shell Programming and Scripting

Folder contents getting appended as strings while redirecting file contents to a variable

Hi one of the output of the command is as below # sed -n "/CCM-ResourceHealthCheck:/,/---------/{/CCM-ResourceHealthCheck:/d;/---------/d;p;}" Automation.OutputZ$zoneCounter | sed 's/$/<br>/' Resource List : <br> *************************** 1. row ***************************<br> ... (2 Replies)
Discussion started by: vivek d r
2 Replies

5. Shell Programming and Scripting

Replace partial contents of file with contents read from other file

Hi, I am facing issue while reading data from a file in UNIX. my requirement is to compare two files and for the text pattern matching in the 1st file, replace the contents in second file by the contents of first file from start to the end and write the contents to thrid file. i am able to... (2 Replies)
Discussion started by: seeki
2 Replies

6. Shell Programming and Scripting

I want to delete the contents of a file which are matching with contents of other file

Hi, I want to delete the contents of a file which are matching with contents of other file in shell scripting. Ex. file1 sheel,sumit,1,2,3,4,5,6,7,8 sumit,rana,2,3,4,5,6,7,8,9 grade,pass,2,3,4,5,6,232,1,1 name,sur,33,1,4,12,3,5,6,8 sheel,pass,2,3,4,5,6,232,1,1 File2... (3 Replies)
Discussion started by: ranasheel2000
3 Replies

7. UNIX for Dummies Questions & Answers

Help with searching for a file in a directory and copying the contents of that file in a new file

Hi guys, I am a newbie here :wall: I need a script that can search for a file in a directory and copy the contents of that file in a new file. Please help me. :confused: Thanks in advance~ (6 Replies)
Discussion started by: zel2zel
6 Replies

8. Shell Programming and Scripting

sed command for copying the contents of other file replacing it another file on specifc pattern

We have 2 file XML files - FILE1.XML and FILE2.xml - we need copy the contents of FILE1.XML and replace in FILE2.xml pattern "<assignedAttributeList></assignedAttributeList>" FILE1.XML 1. <itemList> 2. <item type="Manufactured"> 3. <resourceCode>431048</resourceCode> 4. ... (0 Replies)
Discussion started by: balrajg
0 Replies

9. UNIX for Dummies Questions & Answers

compare 2 file contents , if same delete 2nd file contents

Give shell script....which takes two file names as input and compares the contents, is both are same delete second file's contents..... I try with "diff"...... but confusion how to use "diff" with if ---else Thanking you (5 Replies)
Discussion started by: krishnampkkm
5 Replies

10. Homework & Coursework Questions

Creating a new file that is composed of other contents

Use and complete the template provided. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Write a single command to create a new file composed of the contents of War followed by the the contents of Peace; the new file should be located in... (1 Reply)
Discussion started by: jorogon0099
1 Replies
Login or Register to Ask a Question