Sponsored Content
Full Discussion: Search and replace with awk
Top Forums Shell Programming and Scripting Search and replace with awk Post 302904640 by jville on Thursday 5th of June 2014 10:08:35 AM
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

 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
PREG_REPLACE_CALLBACK(3)						 1						  PREG_REPLACE_CALLBACK(3)

preg_replace_callback - Perform a regular expression search and replace using a callback

SYNOPSIS
mixed preg_replace_callback (mixed $pattern, callable $callback, mixed $subject, [int $limit = -1], [int &$count]) DESCRIPTION
The behavior of this function is almost identical to preg_replace(3), except for the fact that instead of $replacement parameter, one should specify a $callback. PARAMETERS
o $pattern - The pattern to search for. It can be either a string or an array with strings. o $callback - A callback that will be called and passed an array of matched elements in the $subject string. The callback should return the replacement string. This is the callback signature: string handler (array $matches) You'll often need the $callback function for a preg_replace_callback(3) in just one place. In this case you can use an anonymous function to declare the callback within the call to preg_replace_callback(3). By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback function's name not used anywhere else. Example #1 preg_replace_callback(3) and anonymous function <?php /* a unix-style command line filter to convert uppercase * letters at the beginning of paragraphs to lowercase */ $fp = fopen("php://stdin", "r") or die("can't read stdin"); while (!feof($fp)) { $line = fgets($fp); $line = preg_replace_callback( '|<p>s*w|', function ($matches) { return strtolower($matches[0]); }, $line ); echo $line; } fclose($fp); ?> o $subject - The string or an array with strings to search and replace. o $limit - The maximum possible replacements for each pattern in each $subject string. Defaults to -1 (no limit). o $count - If specified, this variable will be filled with the number of replacements done. RETURN VALUES
preg_replace_callback(3) returns an array if the $subject parameter is an array, or a string otherwise. On errors the return value is NULL If matches are found, the new subject will be returned, otherwise $subject will be returned unchanged. CHANGELOG
+--------+---------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------+ | 5.1.0 | | | | | | | The $count parameter was added | | | | +--------+---------------------------------+ EXAMPLES
Example #2 preg_replace_callback(3) example <?php // this text was used in 2002 // we want to get this up to date for 2003 $text = "April fools day is 04/01/2002 "; $text.= "Last christmas was 12/24/2001 "; // the callback function function next_year($matches) { // as usual: $matches[0] is the complete match // $matches[1] the match for the first subpattern // enclosed in '(...)' and so on return $matches[1].($matches[2]+1); } echo preg_replace_callback( "|(d{2}/d{2}/)(d{4})|", "next_year", $text); ?> The above example will output: April fools day is 04/01/2003 Last christmas was 12/24/2002 Example #3 preg_replace_callback(3) using recursive structure to handle encapsulated BB code <?php $input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain"; function parseTagsRecursive($input) { $regex = '#[indent]((?:[^[]|[(?!/?indent])|(?R))+)[/indent]#'; if (is_array($input)) { $input = '<div style="margin-left: 10px">'.$input[1].'</div>'; } return preg_replace_callback($regex, 'parseTagsRecursive', $input); } $output = parseTagsRecursive($input); echo $output; ?> SEE ALSO
PCRE Patterns, preg_quote(3), preg_replace(3), preg_last_error(3), Anonymous functions, information about the callback type. PHP Documentation Group PREG_REPLACE_CALLBACK(3)
All times are GMT -4. The time now is 01:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy