Find and replace value using a key from other file
Dear Friends,
I am looking for a way how to find and replace a value in two files using a reference a file where are the key to replace.
Basically, I want to keep a copy of the original file and make a new one in order to compare at the end that the change was done whitout change the rest of file..
All files are in the same folder.
Then the files are like this
file name = sw1135g.sps
file name = sw1135g.xps
filename = datatochange.txt ( reference file )
Then the desired output
file name = sw1135gnew.sps
The changed was done in colum 24, value 2 has been replaced by value 1, acoording to file datatochange.txt $5
looking and taking as reference 2657.00 7305.00
file name = sw1135gnew.xps
The changed was done in colum 38, value 2 has been replaced by value 1, acoording to file datatochange.txt $5
looking and taking as reference 2657.00 7305.00
In the reference file datatochange.txt, I have wrote the name of the file where the changes need to be done. the output name for the new file need to be different. (sw1135gnew.xps example)
I have many files to change it is only a example for one case.
Please let me know if there is other way to do it,
Any help on this will be strongly appreciated.
Thanks in advance
Last edited by Scott; 11-03-2012 at 07:42 AM..
Reason: Code tags
With some assumptions:
I accept that this is not a good solution (you might end up replacing wrong values in some cases). But then your lookup file provides no indication about the position/s to attempt search/substitution. In one file, the search is supposed to start at the 24th column and at the 38th column in the other.
Last edited by elixir_sinari; 11-03-2012 at 05:36 AM..
THE POINT IS TO FIND THE VALUE 2657.00 7305.00 IN THE FILE sw1135g.sps AND REPLACE in colum 24, value 2 WITH value 1, acoording to file datatochange.txt TAKING THE field $5 AS THE VALUE TO CHANGE AND THE field $2 field $3 AS reference 2657.00 7305.00
---------- Post updated at 03:25 AM ---------- Previous update was at 03:00 AM ----------
ELIXIER,
how I can send the files to you, because ,when I post the files here , does not keep the good format and this cause the confusion regarding to columns..
THE POINT IS TO FIND THE VALUE 2657.00 7305.00 IN THE FILE sw1135g.sps AND REPLACE in colum 24, value 2 WITH value 1, acoording to file datatochange.txt TAKING THE field $5 AS THE VALUE TO CHANGE AND THE field $2 field $3 AS reference 2657.00 7305.00
---------- Post updated at 03:25 AM ---------- Previous update was at 03:00 AM ----------
ELIXIER,
how I can send the files to you, because ,when I post the files here , does not keep the good format and this cause the confusion regarding to columns..
Thansk for your hel
Please go back and look at your initial posting to this thread. You said that the datatochange.txt line:
was supposed to change the line:
to:
which is a change in output column 19 (not 24).
And you said that the datatochange.txt line:
was supposed to change the line:
and several similar lines to:
and several similar lines all with changes in output column 28 (not 38).
Did you look at the header above the text box where you entered your question? Among other things it says:
Quote:
Do you have any code fragments or data samples in your post? If so wrap them in code tags using the code tag button in the editor below (hint: it looks like this -->)
If you mean that your input had tabs or multiple spaces in it that you didn't protect with code tags; that might explain why elixir_sinari gave you changes to the wrong output column for the changes to these files. If you want a general solution, you'll have to specify the output column to be changed in the datatochange.txt file and use code tags when showing us sample input and output files.
Last edited by Don Cragun; 11-03-2012 at 06:10 AM..
INPUT 1
file name = sw1135g.sps ---------- Post updated at 05:10 AM ---------- Previous update was at 05:08 AM ----------
INPUT 2
file name = sw1135g.xps ---------- Post updated at 05:21 AM ---------- Previous update was at 05:10 AM ----------
REFERENCE
filename = datatochange.txt ( reference file ) ---------- Post updated at 05:21 AM ---------- Previous update was at 05:21 AM ----------
REFERENCE
filename = datatochange.txt ( reference file ) ---------- Post updated at 05:21 AM ---------- Previous update was at 05:21 AM ----------
OUTPUT 1
file name = sw1135gnew.sps
---------- Post updated at 05:22 AM ---------- Previous update was at 05:21 AM ----------
OUTPUT 2
file name = sw1135gnew.xps
---------- Post updated at 05:24 AM ---------- Previous update was at 05:22 AM ----------
Thanks Don,, I have post again the data whit the correct format..
---------- Post updated at 05:25 AM ---------- Previous update was at 05:24 AM ----------
THE POINT IS TO FIND THE VALUE 2657.00 7290.00 IN THE FILE sw1135g.sps AND REPLACE in colum 24, value 2 WITH value 1, acoording to file datatochange.txt TAKING THE field $5 AS THE VALUE TO CHANGE AND THE field $2 field $3 AS reference 2657.00 7290.00
---------- Post updated at 05:35 AM ---------- Previous update was at 05:25 AM ----------
REFERENCE
filename = datatochange.txt ( reference file )
sorry I forgot to put the file sw1135g.xps inside of file datatochange.txt
Regards
Hi All,
I am having below sample data in a file.
I need to find all the line form this file with word ABC and i need to replace the characters at position 120 which is "CO:BOGFDUI"(30chars) in the lines with blank space.
I have tried using grep to find the word with ABC (grep ABC filename),... (3 Replies)
Hi,
I am new to shell scripting. I have a config file where key and value is stored as below. In my shell script, I want to look for Test ID in the config file and replace the value 1 with another value stored in a variable. How would I do that ?
<Config Key="Test ID" Value="1"/>
I... (6 Replies)
Hello Forum.
I have a file called abc.sed with the following commands;
s/1/one/g
s/2/two/g
...
I also have a second file called abc.dat and would like to substitute all occurrences of "1 with one", "2 with two", etc and create a new file called abc_new.dat
sed -f abc.sed abc.dat >... (10 Replies)
Hi All,
I have a XML file which is looks like as below. <<please see the attachment >>
<?xml version="1.0" encoding="UTF-8"?>
<esites>
<esite>
<name>XXX.com</name>
<storeId>10001</storeId>
<module>
... (4 Replies)
Legends,
I have a file /tmp/list.txt
I want to find "/bin/" and replace it with "/log/"
I tried the follwoing but no luck
Sandy: /tmp> perl -pi -e 's/\/bin\/\/log\/' /tmp/list.txt >> /tmp/try
Substitution pattern not terminated at -e line 1.
AND,
Sandy: /tmp> perl -pi -e... (2 Replies)
I've never written scripts (just switched from Ada to C++). I have a book that's over my head and a few examples, other then that I'm floundering. Everything here at work is being done in C Shell. None of the C++ programmers are experienced in shell scripting.
I have a data file with the... (2 Replies)
Is there a way to do a find and replace in a .gz file in a single script ?
I can always unzip, find and replace and then zip it again but would hate to do this everytime.
Thanks !
Vivek (1 Reply)
Hi everyone,
I am new to the world of shell script programming.
I have a file named Fnd1.txt which has the contents as below.
I need to replace the \t with the tab space. Can any one help me
to write a perl scipt for this.
USA45V1\tG\t341029
USAV1T1\tG\t450545
USAREJ1\tG\t572645... (5 Replies)
I build several files by using the cut command to grab select fields(columns) from a really bid csv file. Each file is one column of data. I then put them together using paste command. Here is the code built in tcsh:
cut -d , -f 1 some.csv > 1.csv
cut -d , -f 10 some.csv > 10.csv
paste 1.csv... (2 Replies)