find and replace issue using awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting find and replace issue using awk
# 1  
Old 04-21-2011
find and replace issue using awk

Hi All,
point 1. I have n number of environment variable files in different folders. All file names are ending with one thing common ie, *envset.sh
point 2. All these contains Varilables and some other information like following


*envset.sh ===>>

Code:
CORE_DB2_ROOT_JAVA=${CORE_DB2_ROOT_JAVA}
# Add quotes around the name in case there are spaces in the name.
CORE_DB2_ROOT_JAVA="$CORE_DB2_ROOT_JAVA"
echo CORE_DB2_ROOT_JAVA [$CORE_DB2_ROOT_JAVA]
CORE_WAS_HOME=${CORE_WAS_HOME}
# Add quotes around the name in case there are spaces in the name.
CORE_WAS_HOME="$CORE_WAS_HOME"
echo CORE_WAS_HOME="$CORE_WAS_HOME"
DB_USER_NAME=${DB_USER_NAME}
DB_USER_NAME="$DB_USER_NAME"

point 3 I have one file named tokenvalues.txt which contains the variable name and values to that variables.

tokenvalues.txt
Code:
CORE_DB2_ROOT_JAVA=/java/bin
CORE_WAS_HOME=/home/was/path
DB_USER_NAME=db2admin.

Point 4: Now using this tokenvalues.txt as a input file i am going to replace all the variables in *envset.sh that are matching the string ${varname}

following is the code file (tokenreplace.sh) that is written
tokenreplace.sh >>
Code:
for file in `find . -name "*env.sh" -print` 
do
awk -F= 'NR==FNR {_[$1]=$2; next} _[$1] {print $1,_[$1];next}1' OFS="=" tokenvalues.txt $file > tmp; mv tmp $file; 
echo $file
done


point 5 : but this is replacing all the instances wherever it is matching variable name from input file. where as i jst want to replace those where
varname={varname} is matching.

Any help on this will be strongly appreciated.

Thanks in advance

Nitin
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 04-21-2011 at 10:32 AM.. Reason: ONCE again - please use code tags!
# 2  
Old 04-21-2011
You can make your specification much easier if display the desired output.
# 3  
Old 04-22-2011
Quote:
Originally Posted by Shell_Life
You can make your specification much easier if display the desired output.
Desired output would be :
Code:
CORE_DB2_ROOT_JAVA=/java/bin
# Add quotes around the name in case there are spaces in the name.
CORE_DB2_ROOT_JAVA="$CORE_DB2_ROOT_JAVA"
echo CORE_DB2_ROOT_JAVA [$CORE_DB2_ROOT_JAVA]
CORE_WAS_HOME==/home/was/path
# Add quotes around the name in case there are spaces in the name.
CORE_WAS_HOME="$CORE_WAS_HOME"
echo CORE_WAS_HOME="$CORE_WAS_HOME"
DB_USER_NAME=db2admin.
DB_USER_NAME="$DB_USER_NAME"


Last edited by Scott; 04-22-2011 at 04:39 PM.. Reason: Code tags, please...
# 4  
Old 04-22-2011
This will do the trick:
Code:
#!/usr/bin/ksh
rm -f Token_sed
IFS='='
while read mField mValue
do
  mOld=${mField}'=${'${mField}'}'
  mNew=${mField}'='${mValue}
  echo "s@${mOld}@${mNew}@" >> Token_sed
done < Token_File
sed -f Token_sed Input_File

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find and replace in awk

I have a file that I am trying to find a specific word, then replace text within that string. file TestA2015 TestB2016 Example. Replace TestB2016 to TestB0000, so if TestB is found replace the original "2016" to "0000". Thank you :). awk tried awk '{ sub(/TestB$/, "0000", $6) }1'... (5 Replies)
Discussion started by: cmccabe
5 Replies

2. Shell Programming and Scripting

awk - find first occurence and replace it

Hello, I have a requirement to replace the whole string with first occurence of value of a key-value pair. I have to do this inside awk, as the data I need to work is inside an awk loop. value of my variable(say LogText) looks like: LogText= date=04Mar message=hello1 name=caq... (4 Replies)
Discussion started by: cool.aquarian
4 Replies

3. Shell Programming and Scripting

Find fields and replace using awk

Code: Using ksh Var1=`awk -F";" {print $1}' Input2.txt` cat Input1.txt | awk -F";" '{$3="Var1"}' > Output.txt (13 Replies)
Discussion started by: Roozo
13 Replies

4. Shell Programming and Scripting

Find and Replace in awk

Friends, I have more the thousand lines like this. check.cloud1.port=342 check.cloud2.port=5456 check.cloud3.port-4564 But we need to transfer it to _CHECK.CLOUD1.PORT_=342 _CHECK.CLOUD2.PORT_=5456 _CHECK.CLOUD3.PORT_=4564 Any one could pls help of this. Thanks in Advance ... (1 Reply)
Discussion started by: jothi basu
1 Replies

5. Shell Programming and Scripting

sed and awk -Find and Replace

All, I have thousands of lines in a file with following format DATA=_ONE_XXX_YYY_CCC_HHHG_ DATA1=_GGG_JJJJ_HHH_UUU_JJJJ_HHHH_LLL_ DATA3=_MMM_GG_NN_QQQQ_FFF_III_ I want to replace _ with . by ignoring the first (=_) and last (_) So that out put should looks like... (4 Replies)
Discussion started by: baluchen
4 Replies

6. Shell Programming and Scripting

Find and replace issue

Hello Guys i am seeking help here is my issue I have several files i need to find "&" char and replcae with &amp; or &apos; 1) It may be possible that in a file there are several occurance of &, &amp; or &apos; but need to replace only & whihc does not have amp; and apos; 2)it may be the case out of... (7 Replies)
Discussion started by: lokaish23
7 Replies

7. Shell Programming and Scripting

Simple find and replace with AWK

I am trying to write a find and replace script with AWK and I can't seem to get it to work. I need it to find this exact string *P*: and replace the P with a T or just replcare the whole thing with *T*:. this is what I have tried awk 'BEGIN {gsub(/\*P*:/,"\*T*:"); print}' ${INFILE} >... (4 Replies)
Discussion started by: wbshrk
4 Replies

8. Shell Programming and Scripting

awk find and replace in multiple files

Hi I use the following code to replace ‘.' with ‘N' in my files and keep both versions. awk '{ gsub(/\./,"N"); print }' file_0001.txt > path/to/new/dir/file_0001.txt I need help on how to apply the code to 100 files instead of doing them one file at a time. The files are labeled... (7 Replies)
Discussion started by: jdhahbi
7 Replies

9. Shell Programming and Scripting

awk help to do conditional find and replace

Hi, I have a Line input for awk as follows DROP MATERIALIZED VIEW MCR.COMM_STACK; CREATE MATERIALIZED VIEW "MCR"."COMM_STACK" ON PREBUILT TABLE WITHOUT REDUCED PRECISION USING INDEX REFRESH FAST ON DEMAND START WITH sysdate+0 NEXT SYSDATE + 7 WITH PRIMARY KEY USING DEFAULT... (3 Replies)
Discussion started by: rajan_san
3 Replies

10. Shell Programming and Scripting

awk find/replace

Greetings all. I have web site that has long option and switch lists. When I insert something new into these files, the lists need to be reordered. IE: 1 => apple 2 => pear 3 => bannana 4 => orange --------------------- Add grape as #2 1 => apple 2 => grape 3 => pear 4 =>... (2 Replies)
Discussion started by: RobertSubnet
2 Replies
Login or Register to Ask a Question