Search and replace with awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Search and replace with awk
# 1  
Old 06-05-2014
Search and replace with awk

Hi Shell Tigers,
I am trying to acheive search and replace strings within a setup file.
Help much appreciated.

Code:
  test.setup
    ORACLE_HOME=/oracle/product/11.0.0/home01
    PATH1=/perm_loc/3222/FTP/cfg1
    PATH2=/perm_loc/3222/FTP/cfg2/bin
    PATH3=/perm_loc/3222/FTP/cfg3/bin

So far I have tried
Code:
  cat test.setup | awk -F= -v a="MonsterHouse.Scully" -v b="Mickey/Minie" '{if ($1 == "ORACLE_HOME" ) printf "ORACLE_HOME=%s\n",a;
  else if ( $2 ~ /perm_loc/ ) print (gsub("perm_loc",b)); else print;}'

I get the following results
test.setup
Code:
 ORACLE_HOME=MonsterHouse.Scully 
 1
 1 
 1

Expected :
test.setup
Code:
    test.setup
    ORACLE_HOME=MonsterHouse.Scully
    PATH1=/Mickey/Minie/3222/FTP/cfg1
    PATH2=/Mickey/Minie/3222/FTP/cfg2/bin
    PATH3=/Mickey/Minie/3222/FTP/cfg3/bin

# 2  
Old 06-05-2014
Quote:
Originally Posted by jville
Hi Shell Tigers,
I am trying to acheive search and replace strings within a setup file.
Help much appreciated.
....
So far I have tried
Code:
  cat test.setup | awk -F= -v a="MonsterHouse.Scully" -v b="Mickey/Minie" '{if ($1 == "ORACLE_HOME" ) printf "ORACLE_HOME=%s\n",a;
  else if ( $2 ~ /perm_loc/ ) print (gsub("perm_loc",b)); else print;}'

I get the following results
test.setup
Code:
 ORACLE_HOME=MonsterHouse.Scully 
 1
 1 
 1

You are almost done

Code:
print (gsub("perm_loc",b));

its prints the count of substitution



Code:
awk -F'=' -v a="MonsterHouse.Scully" \
          -v b="Mickey/Minie"  '{
                                  if($1 == "ORACLE_HOME" )
                                       printf "ORACLE_HOME=%s\n",a 
                             else if ( $2 ~ /perm_loc/ ){
                                       gsub("perm_loc",b);
                                       print
                                }
                                else
                                       print                     
                                }' file


Last edited by Akshay Hegde; 06-05-2014 at 12:18 PM..
This User Gave Thanks to Akshay Hegde For This Post:
# 3  
Old 06-05-2014
Try:
Code:
awk -F= -v a="MonsterHouse.Scully" -v b="Mickey/Minie" '{if ($1 ~ "ORACLE_HOME" ) printf "ORACLE_HOME=%s\n",a;
  else if ( $2 ~ /perm_loc/ ) {gsub("perm_loc",b); print} else print}' file

This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 06-05-2014
Worked ! Thank-you Tigers.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search replace with awk using 2 files

I have a bit of a complex problem that I would like to solve with awk. It is essentially a 2-part problem. I have a large directory of files with the same format, each with 266 lines. The first 206 lines of each file are filled with attribute information. Then the following 60 lines consist... (4 Replies)
Discussion started by: owwow14
4 Replies

2. Shell Programming and Scripting

Awk: search and replace

I have a file which requires modification via a shell script. Need to do the following: 0. take input from user for new text. 1. search for a keyword in the file. 2. going forward, search for another keyword. 3. Replace this line with user supplied input. for e.g., my file has the following... (6 Replies)
Discussion started by: chingupt
6 Replies

3. Shell Programming and Scripting

awk/sed string search and replace

Need help with either sed or awk to acheive the following file1 ----- In the amazon forest The bats eat all the time... mon tue wed they would eat berries In the tropical forest The bats eat all the time... on wed bats eat nuts In the rain forest The bats eat all the time... on... (2 Replies)
Discussion started by: jville
2 Replies

4. Shell Programming and Scripting

Exact Search and Replace using AWK

Hello. I have written the following script to search and replace from one file into another. #awk script to search and replace from file a in file b NR == FNR { A=$2; next } { for( a in A ) sub(a, A)}1 file2 file1 While the function works pretty well, I want a. The word in File 2 to... (8 Replies)
Discussion started by: gimley
8 Replies

5. Shell Programming and Scripting

awk search and replace field

I am writing a c++ program that has many calls of pow(input,2). I now realize that this is slowing down the program and these all should be input * input for greater speed. There should be a simple way of doing this replacement throughout my file with awk, but I am not very familiar with awk.... (2 Replies)
Discussion started by: bluejayek
2 Replies

6. Shell Programming and Scripting

search and replace with AWK

Suchen und Ersetzen mit AWK hello, i'm not good in scripting and asking for your help. With this script i change some text parts in diffent datafiles. It works without problems, but i need to get some informations about what changes in wich datafiles happend. This could be in character of a... (3 Replies)
Discussion started by: ruffi
3 Replies

7. Shell Programming and Scripting

Search and Replace using awk

Hi, I am really confused with this problem that I am facing . I have a file that contains entries in the form : option1 Value1 option2 Value2 option3 Value3 option4 Value4 . . . I want to search for the keyword "option4" and replace "value4" by another value, say "value5". My main... (2 Replies)
Discussion started by: harry0812
2 Replies

8. Shell Programming and Scripting

awk - replace number of string length from search and replace for a serialized array

Hello, I really would appreciate some help with a bash script for some string manipulation on an SQL dump: I'd like to be able to rename "sites/WHATEVER/files" to "sites/SOMETHINGELSE/files" within the sql dump. This is quite easy with sed: sed -e... (1 Reply)
Discussion started by: otrotipo
1 Replies

9. Shell Programming and Scripting

Search and replace using awk

Dear All, I want to search and replace the text in file using awk. but facing hard luck in that. Please help me out!!!! > grep Abc.De.ync.rate /tmp/sdosanjh.txt Abc.De.ync.rate 6 write Now, I want to replace the "6" with value say "2". I... (5 Replies)
Discussion started by: sdosanjh
5 Replies

10. Shell Programming and Scripting

search and replace using awk with variables

Hi, I have been trying to use awk with variables that needs to search for a pattern and replace it with another pattern, the patterns are supplied in a variable. I have tried several different ways without success and hope that someone can help me. Here are the details echo $UPC 07007457809... (2 Replies)
Discussion started by: jerardfjay
2 Replies
Login or Register to Ask a Question

Featured Tech Videos