sed command not working for me to change text in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed command not working for me to change text in a file
Prev   Next
# 1  
Old 02-02-2017
sed command not working for me to change text in a file

UNIX gurus

I need your help with the following (The server is an AIX box).

I have a text file with the following information:

Code:
********************************************************
SOME LINES
case
:WORD1
SOME LINES
:WORD2
SOME LINES
:WORD3
SOME LINES
esac
SOME LINES
*********************************************************

I need to change the lines starting with : and replace them with *). For example:
Code:
********************************************************
SOME LINES
case
WORD1*)
SOME LINES
WORD2*)
SOME LINES
WORD3*)
SOME LINES
esac
SOME LINES
*********************************************************

I wrote the following code to get this done, but it's not working, only the last line gets changed, From :WORD3 to WORD3*), the other two (:WORD1 and :WORD2) don't get changed.

Code:
#!/bin/ksh
# ======================================
TWSDATADIR=/opt/apps/TWA/TWS/TWS
TWSDATAFILE=$TWSDATADIR/martin.ABEND
TWSTARGETFILE1=$TWSDATADIR/martin1.ABEND
TWSTARGETFILE2=$TWSDATADIR/martin2.ABEND
TWSTARGETFILE3=$TWSDATADIR/martin3.ABEND
# List the bad lines
# ===========================
sed -e '1,/case $JOBNAME/d' -e '/esac/,$d' $TWSDATAFILE |grep : > $TWSTARGETFILE1
BADLINES=`cat $TWSTARGETFILE1`
for line in $BADLINES
do
TEXT="*)"
good_line_temp=`echo $line | cut -d: -f2`
echo "Bad line: $line"
good_line=`echo "$good_line_temp$TEXT"`
echo "Good line: $good_line"
echo $good_line >> $TWSTARGETFILE3
# sed "s/$line/$good_line/g" $TWSDATAFILE
sed -e "s/${line}/${good_line}/g" $TWSDATAFILE > $TWSTARGETFILE2
done

*********************************************************
I believe the last "sed" command is missing something. Up to that point, the script works fine as shown below. However, when I change on the target file ($TWSTARGETFILE2) as explained above only the last occurrence (:WORD3) gets changed (to WORD3*), but not the 1st (:WORD1) or 2nd (:WORD) occurrence.

Code:
Bad line: :WORD1
Good line: WORD1*)
Bad line: :WORD2
Good line: WORD2*)
Bad line: :WORD3
Good line: WORD3*)

Thanks for your help on this.

Martin.

Last edited by Scrutinizer; 02-02-2017 at 01:19 AM.. Reason: code tags
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

sed command not working

Hello There - Iam trying to get this expdp running for oracle backup. And this is the code below: ### Run the export. ### Comment out any LOGFILE parameters in the .par file. if grep -i "Logfile" /<Path>$1_$2_$3.par; then ## Comment out any LOGFILE... (7 Replies)
Discussion started by: bkilaru
7 Replies

2. Shell Programming and Scripting

sed command not working

cat bipin.txt Unix is an OS Unix has its own commmands Unix is a user friendly OS Unix is platform independent Unix is a time sharing OS the best OS to learn is Unix Abinitio uses Unix in backend this is my file when i use sed 's/Unix/Linux/' bipin.txt all the occurences are getting... (0 Replies)
Discussion started by: Bipin_1991
0 Replies

3. Shell Programming and Scripting

sed working on command line but file unchanged when execute with Shell script

I have a simple task to replace unix line feed end of line characters with carriage returns. When I run the following “change file in place” sed instruction from the command line all the Line feeds are successfully replaced with Carriage returns. sed -i 's/$/\r/' lf_file.txt But that same... (1 Reply)
Discussion started by: hawkman2k
1 Replies

4. Shell Programming and Scripting

sed command not working

Hi All, I am trying to run a sed command to replace a string in a file. sed -i -e "s/$Job_status_old ,$line/Job_status_new ,$line/g" stat.txt The command wen run from the command promt works fine. But the same command does not work when its put in a script. The script is not failing... (3 Replies)
Discussion started by: samyamkrishna
3 Replies

5. Shell Programming and Scripting

Why is this command not working? (sed)

Hi guys, the command is echo "Online Memory : 32768 MB" | sed 's/.*\(+\).*/\1/' I would expect it to print 32768, it cuts off any character to the first digit, then gets all digits in 1, cuts off the rest after the digits, and should print 32768, instead it... (4 Replies)
Discussion started by: funksen
4 Replies

6. Shell Programming and Scripting

sed command: change only twice

Hello, I recently sought help on another thread about how to prefix 2 words in a file with 'pack/'. This is the command: sed --in-place 's/"\(libraries\|objects\)"/"pack\/\1"/g' Background: I have a .json file with the word 'libraries' and 'objects' in it. However, 'libraries' occurs twice;... (6 Replies)
Discussion started by: AJ Ruckman
6 Replies

7. Shell Programming and Scripting

sed change text

Hello, I have sed to change improperly entered email address such as: blank@blank.co --> blank@blank.com (it should be) I am using this: sed 's/blank.co/blank.com/g' Problem is it makes good ones already blank.com becomes blank.comm which is incorrect..... It should only match *@.co... (3 Replies)
Discussion started by: holyearth
3 Replies

8. Shell Programming and Scripting

Need help please with Grep/Sed command to extract text and numbers from a file

Hello All, I need to extract lines from a file that contains ALPHANUMERIC and the length of Alphanumeric is set to 16. I have pasted the sample of the lines from the text file that I have created. My problem is that sometimes 16 appears in other part of the line. I'm only interested to... (14 Replies)
Discussion started by: mnassiri
14 Replies

9. Shell Programming and Scripting

Need to insert new text and change existing text in a file using SED

Hi all, I need to insert new text and change existing text in a file. For that I used the below line in the command line and got the expected output. sed '$a\ hi... ' shell > shell1 But I face problem when using the same in script. It is throwing the error as, sed: command garbled:... (4 Replies)
Discussion started by: iamgeethuj
4 Replies

10. UNIX for Dummies Questions & Answers

Sed command not working

Hi, I have a test file as follows: 1G102119 ^ AA1179291 ^ 06oct2006 09:50:35^ 73.4^ 2^ 13^ 0^ 1493 1G102119 ^ AA1179291 ^ 06oct2006 09:49:45^ 73.4^ 2^ 13^ 0^ 1493 1G102119 ^ AA1179291 ^ 06oct2006 09:48:58^ 73.4^ 2^ 17^ 0^ 2 1G102119 ... (9 Replies)
Discussion started by: shashi_kiran_v
9 Replies
Login or Register to Ask a Question