How to find a certain string in a file and replace it with a value from another file using sed/awk?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to find a certain string in a file and replace it with a value from another file using sed/awk?
# 8  
Old 12-17-2010
Hi Anurag,
I have two files:

Stack.txt:

main: 1
function1: 1
function2: 1

and

Output.txt:

main: 0
function1: 1
function2: 0


I want to concatenate them into a single file say:

Data.txt:

main: 1
function1: 1
function2: 1
main: 0
function1: 1
function2: 0

Now what exact command to use? Smilie I am a total novice !
# 9  
Old 12-17-2010
Just append output.txt file to Stack.txt file.

Code:
cat Stack.txt > Data.txt
cat Output.txt >> Data.txt

I read all the posts over here, but I still don't understand what exactly u want
R0H0N
# 10  
Old 12-17-2010
Hi.. thx so much for the quick reply!! I just want to separate the blocks and send it as an argument to a tool(yices). a shell script for that i want.. i am new to linux environ..
basically i am developing a diagnostic tool..(a debugging project)
i need to do some text editing and send the text to yices(whole file). if the result is 'unsat' i need to separate the blocks and send each to diagnose where the problem lies.. Now you got it? does it make sense? i have other problems too.. will post another thread for that :P
# 11  
Old 12-17-2010
First column value in both Stack.txt and Output.txt are same. I hope this is not the case. If same, then value in 1st file (Stack.txt) will be in final output.

Code:
 
cat Stack.txt Output.txt > Data.txt
while read a b
do
    sed -i "s/$a/$b/g" file1
done <Data.txt

If -i switch in sed doesn't wrok, then you need to you a temp file as below:
Code:
sed "s/$a/$b/g" file1 >temp; mv temp file1

# 12  
Old 12-17-2010
hi anurag,
u r right... it will be like this:
data.txt:

main: ARG 1
function1: F1 1
function2: F1' 1
main: OUT 0
function1: F2 1
function2: F2' 0

now it becomes little difficult actually:
i have to replace ARG in the first file(see main post) with the corresponding value for ARG ie '1' . similarly for F1, value 1 etc. now ill the previous code work? i have to match the string and get the corresponding value .. how will i do that?
# 13  
Old 12-17-2010
Assuming you want to replace
ARG with 1
F1 with 1
F1' with 1
OUT with 0
etc..
Code:
 
cat Stack.txt Output.txt > Data.txt
while read a b c
do
    sed -i "s/$b[']\{0,1\}/$c/g" file1
done <Data.txt

# 14  
Old 12-17-2010
I do not want to replace with fixed values. I have to search for the string OUT in the new file(data.txt) and replace the OUT in file1 with the corresponding value(it may be 0/1/2/3 , anything)
that is have to grep for OUT in the file and find the value that is beside it!!Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace string of a file with a string of another file for matches using grep,sed,awk

I have a file comp.pkglist which mention package version and release . In 'version change' and 'release change' line there are two versions 'old' and 'new' Version Change: --> Release Change: --> cat comp.pkglist Package list: nss-util-devel-3.28.4-1.el6_9.x86_64 Version Change: 3.28.4 -->... (1 Reply)
Discussion started by: Paras Pandey
1 Replies

2. Shell Programming and Scripting

Replace string in XML file with awk/sed with string from another

Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file: </member> <member> <name>TransactionID</name> <value><string>123456789123456</string></value> </member> <member> <name>Number</name> ... (9 Replies)
Discussion started by: cozzin
9 Replies

3. Shell Programming and Scripting

Perl script to read string from file#1 and find/replace in file#2

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)
Discussion started by: pchang
10 Replies

4. Shell Programming and Scripting

Help with Passing the Output of grep to sed command - to find and replace a string in a file.

I have a file example.txt as follows :SomeTextGoesHere $$TODAY_DT=20140818 $$TODAY_DT=20140818 $$TODAY_DT=20140818I need to automatically update the date (20140818) in the above file, by getting the new date as argument, using a shell script. (It would even be better if I could pass... (5 Replies)
Discussion started by: SriRamKrish
5 Replies

5. Shell Programming and Scripting

sed or awk to replace a value in a certain line from another file containing a string

Hi experts, In my text file I have the following alot of lines like below. input.k is as follows. 2684717 -194.7050476 64.2345581 150.6500092 0 0 2684718 -213.1575623 62.7032242 150.6500092 0 0 *INCLUDE $# filename... (3 Replies)
Discussion started by: hamnsan
3 Replies

6. Shell Programming and Scripting

How to replace a string containing @ in a file using sed ?

I have a list of names and email addresses. Sample File - username=poga--poga@yahoo.com new-york,US 512834 username=poga123--poga123@hotmail.com new-jersey,US 0894753 Requirement is to replace the email ids as dummy_username@xyz.com using sed only. Output File -... (4 Replies)
Discussion started by: poga
4 Replies

7. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

8. Shell Programming and Scripting

replace (sed?) a single line/string in file with multiple lines (string) from another file??

Can someone tell me how I can do this? e.g: Say file1.txt contains: today is monday the 22 of NOVEMBER 2010 and file2.txt contains: the 11th month of How do i replace the word NOVEMBER with (5 Replies)
Discussion started by: tuathan
5 Replies

9. Shell Programming and Scripting

Using sed to replace a string in file with a string in a variable that contains spaces

Hi, i call my shell like: my_shell "my project name" my script: #!/bin/bash -vx projectname=$1 sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp cp temp test_config_doxy the following error occurres: sed s/'PROJECT_NAME ... (2 Replies)
Discussion started by: vivelafete
2 Replies

10. Shell Programming and Scripting

find and replace a string in a file without the use of temp file

Hi - I am looking for a replacing a string in a in multiple *.sql files in directory with a new string without using a temporary file Normally I can use sed command as below for W in ls `FILE*.sql` do sed 's/OLD/NEW/g' $W > TEMPFILE.dat mv TEMPFILE.dat $W done But Here in my... (9 Replies)
Discussion started by: raghutapal
9 Replies
Login or Register to Ask a Question