Sponsored Content
Top Forums Shell Programming and Scripting Using sed in ksh to find and replace string Post 302656283 by pandeyra on Thursday 14th of June 2012 11:50:46 AM
Old 06-14-2012
Using sed in ksh to find and replace string

Hi All,

I have a file in which contains location of various data files. I want to change locations using sed. Find and replace strings are in a separate file. Content of this file (/tmp/tt) -
Code:
/dd/pp/test/test/1/ /pp/aa/test/dg1/
/dd/pp/test/test/2/ /pp/aa/test/dg2/
/dd/pp/test/test/3/ /pp/aa/test/dg3/

This is how I am trying to get desired result-
Code:
cat /tmp/tt | while read LINE
do
  FND=`echo $LINE | awk '{print $1}'`
  REP=`echo $LINE | awk '{print $2}'`
  sed "s=/${FND}=${REP}=" /tmp/ccf_temp.sql > /tmp/tmp.sql && mv /tmp/tmp.sql /tmp/ccf_temp.sql
done

Above is not working. However on command line if I give find and replace string directly, sed is working fine. For example below is fine
Code:
$>sed "s/dd/pp/test/test/1//pp/aa/test/dg1/=" /tmp/ccf_temp.sql > /tmp/tmp.sql


So I believe it is the variable that is cauing issue.

Can someone help please.

Thanks in advance for your time

Last edited by Franklin52; 06-15-2012 at 04:34 AM.. Reason: Please use code tags for data and code samples
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find and Replace in ksh.

Hi Experts, I have a directory which have 500 ksh, they all have common path string. I have replaced all the ksh in different directory so i need to change the path string. Please help me how to search and replace it. Thanks SKG (1 Reply)
Discussion started by: gauravsunil
1 Replies

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

Hi Everyone, I am new to this forum and new to sed/awk programming too !! I need to find particular string in file1(text file) and replace it with a value from another text file(file2) the file2 has only one line and the value to be replaced with is in the second column. file 1: (assert (=... (21 Replies)
Discussion started by: paramad
21 Replies

3. Shell Programming and Scripting

Replace string in ksh

Hello, I want to locate a special character in each line of a file and replace it with another string that contains a special character and $i (i is incresing each cycle) string1: export IBAN=AAAAAAAAA . . . . export IBAN=zzzzzzzzzzz I want it to be: export IBAN=AAAAAAAAA . export... (1 Reply)
Discussion started by: LiorAmitai
1 Replies

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

5. Shell Programming and Scripting

QUESTION1: grep only exact string. QUESTION2: find and replace only exact value with sed

QUESTION1: How do you grep only an exact string. I am using Solaris10 and do not have any GNU products installed. Contents of car.txt CAR1_KEY0 CAR1_KEY1 CAR2_KEY0 CAR2_KEY1 CAR1_KEY10 CURRENT COMMAND LINE: WHERE VARIABLE CAR_NUMBER=1 AND KEY_NUMBER=1 grep... (1 Reply)
Discussion started by: thibodc
1 Replies

6. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

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

8. Shell Programming and Scripting

Sed: find and replace backwards, until string

Some help please: Need to find string ||(everything in front of it)B0300|| and replace it with ||0|| globally In: 16112121||||0||0||0||0||0||52||52||0||0||0||0||1507200053342B0300||1507200053342B0300||0||0||0||0700 Out: 16112121||||0||0||0||0||0||52||52||0||0||0||0||0||0||0||0||0||0700 ... (4 Replies)
Discussion started by: drbiloukos
4 Replies

9. UNIX for Beginners Questions & Answers

sed find replace after HOST string

Hi Everyone, I have a xml file, where i need to find this HOST=dbhost.domain.com and then replace only dbhost.domain.com with db.one.in so finally it should like this HOST=db.one.in i tried this but its not working. sed -i "s/^HOST=*com$/HOST=db.one.in/g" repository.xml ^... (4 Replies)
Discussion started by: shajay12
4 Replies

10. UNIX for Beginners Questions & Answers

How to identify delimiter to find and replace a string with sed?

I need to find and replace a date format in a SQL script with sed. The original lines are like this: ep.begin_date, ep.end_date, ep.facility_code, AND ep.begin_date <= '01-JUL-2019' ep.begin_date, ep.end_date, ep.facility_code, AND ... (15 Replies)
Discussion started by: duke0001
15 Replies
RPL(1)							    BSD General Commands Manual 						    RPL(1)

NAME
rpl -- replace strings in files SYNOPSIS
rpl [-LhiwbqvsRepfdt] [-xSUFFIX] <old_string> <new_string> <target_file ...> DESCRIPTION
Basic usage is to specify two strings and one or more filenames or directories on the command line. The first string is the string to replace, and the second string is the replacement string. -h, --help A short help text. -L, --license Show the license and exit. -xSUFFIX Search only files ending with SUFFIX, e.g. ``.txt''. May be specified multiple times. -i, --ignore-case Ignore the case of old_string. -w, --whole-words Make old_string match only on word boundaries. -b, --backup Move the original files to filename~ before replacing them. -q, --quiet Quiet mode. -v, --verbose Verbose mode. -s, --dry-run Simulation mode, no files are changed. -R, --recursive Recurse into subdirectories. -e, --escape Expand escape sequences in old_string and new_string. Examples of escape sequences are ' ' (new-line), ' ' (tab), 'x42' (hexadec- imal number 42), '33' (octal number 033). -p, --prompt Prompt for confirmation before replacing each file. -f, --force Ignore errors when trying to restore permissions and file ownership. -d, --keep-times Keep modification times when replacing files. -t, --use-tmpdir Use a temporary directory for storing temporary files, usually the value of the environment variable TMPDIR. The default is to put temporary files in the same directory as the file being modified. -a, --all Do not ignore files and directories starting with . IMPLEMENTATION NOTES
An effort has been made to make the program behave as much as the original rpl as necessary. Where it has been possible to make improve- ments, improvements have been made. This implementation lacks many of the bugs in the original. EXAMPLES
Replace all occurences of ``F'' (on word boundaries) with ``A'' in all text files under the grades/ directory: $ rpl -Rwd -x'.txt' 'F' 'A' grades/ SEE ALSO
find(1), sed(1). HISTORY
This program was written for Debian as a free replacement for the non-free rpl program by Joe Laffey. AUTHORS
Goran Weinholt <weinholt@debian.org>. Debian July 31, 2005 Debian
All times are GMT -4. The time now is 10:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy