sed not working


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed not working
# 1  
Old 04-25-2011
sed not working

hello,

I am not able to redirect the output to the same file, where I am searching and replacing a pattern.
Code:
D:\>cat abc.txt
abc
D:\>sed "s\abc\xyz\g" abc.txt > abc.txt

D:\>cat abc.txt

D:\>

If I dont redirect the output to abc.txt, the command is working fine, even if I append the output to the file, it works. but I want to replace the string in the same file.

Please help.

thanks,
chetan

Last edited by Franklin52; 04-25-2011 at 12:30 PM.. Reason: Please use code tags
# 2  
Old 04-25-2011
use the -i option if you are using GNU sed. also your syntax is wrong. I will let somebody else show you.
Code:
$ ruby -i.bak -ne '$_.gsub!(/abc/,"xyz")' myfile

# 3  
Old 04-25-2011
hey thanks dude, but I am not really able to get what you have written (dont mind). I am new to shell environment.

The command is working fine for stdout -
Code:
D:\>cat abc.txt

D:\>cat abc.txt
abc
D:\>sed "s\abc\xyz\g" abc.txt
xyz

D:\>sed "s\abc\xyz\g" abc.txt > abc.txt


It is not redirecting the output to abc.txt.

Last edited by Franklin52; 04-25-2011 at 12:30 PM.. Reason: Please use code tags
# 4  
Old 04-25-2011
OK, so I am that "somebody else"~
You can't redirect your output to the original input file, that would just wipe out the whole file. you can use the i option to replace text in place.
Code:
sed -i 's/abc/xyz/g' abc.txt

man sed for more info.
# 5  
Old 04-25-2011
Hi Kevin,

sorry for the trouble. I had tried -i option, but it is not available
Code:
D:\>sed -i 's\abc\xyz\g' abc.txt
sed: Unknown option -i
Usage: sed [-n] script [file...]
       sed [-nE] [-e script] [-f scriptfile] [file...]

D:\>help sed
sed -- stream editor (non-interactive)
Usage:  sed [-En] script [file ...]
        sed [-En] [-e script]... [-f scriptfile]... [file ...]

-E              use extended regular expressions
-e script       add argument "script" to end of script
-n              suppress output except from commands in sed script
-f scriptfile   add commands in "scriptfile" to script

Moderator's Comments:
Mod Comment Please use code tags
# 6  
Old 04-25-2011
Hi.

Then you should write it to a temporary file, then copy it back over the original.

Code:
sed "....." abc.txt > abc.tmp
move abc.tmp abc.txt

# 7  
Old 04-25-2011
Thanks a lot for your guidance Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Working with if and sed in UNIX

I have a text file containing multiple lines like password="&test."; password="xyz"; password='write some'; password="&testwrite."; today='o1jan2017'd; ----------------- ------------------ I don't want to replace the string value which are starting with & for Password variable... (3 Replies)
Discussion started by: harshabag
3 Replies

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

3. Shell Programming and Scripting

I sed its not working!

sed -i '' 's:'<string>/Users/testuser/Desktop/test.sh</string>':'something':g' log.txt The log file has this in <string>/Users/testuser/Desktop/test.sh</string> and I want to change it to something This code isn't working any ideas? Its doing my head in! (4 Replies)
Discussion started by: digitalviking
4 Replies

4. Shell Programming and Scripting

Sed not working the way i want it

I dont get something about sed If i have a text file inside contain a:a:a:a:a sed "s/"$title:$author:$price:$qtyAvailable:$qtySold"/"$Ntitle:$author:$price:$qtyAvailable:$qtySold"/" This work!! i can change a to be something else but If i have a text file inside contain Tom Tom:La... (2 Replies)
Discussion started by: GQiang
2 Replies

5. Shell Programming and Scripting

sed -i not working in HP unix

hi i want to append the number in each file,but when i ran this command:- sed -i "1i 50" filename its giving error sed: illegal option -- i in HP unix but its working in linux. any advice !!!!!!!!! (6 Replies)
Discussion started by: abhigrkist
6 Replies

6. UNIX for Dummies Questions & Answers

sed not working

Hi All, Need some assistance n my script. My file is LBXBC040904071724 and output should be LBX0904071704 tempFile=`echo $file | cut -c 4-7` tempFile1=`echo $file | sed -e s/$tempFile//` min=`expr substr $tempFile1 12 2` cycleno=`expr substr $tempFile 3 2` newFile=`echo $tempFile1 |... (2 Replies)
Discussion started by: jda
2 Replies

7. Shell Programming and Scripting

sed not working for me.

Hi All, I need to modify ifcfg-eth0 file. The file currently contains the following: ONBOOT=no The desired output of the file is: ONBOOT=no DEVICE=eth0 BOOTPROTO=static IPADDR=234.235.34.56 NETMASK=255.255.255.0 GATEWAY=234.235.34.1 I know sed can help me in this, and... (4 Replies)
Discussion started by: nua7
4 Replies

8. UNIX for Dummies Questions & Answers

sed not working

I am working on sed ... to replace a string... but not able to save. i need to repalce a string in httpd.conf in numerous directories. I am doing this find /opt/apache/*/conf/ -name httpd.conf -exec sed 's/LogLevel debug/LogLevel error/g' {} \; even tried with find... (4 Replies)
Discussion started by: logic0
4 Replies

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

10. UNIX for Advanced & Expert Users

sed not working

Hi, Iam doing the following using sed in a script , it is NOT working line_old= 3754|Yes|Yes line_new= 3754|Yes|Yes|Yes|Yes sed -e 's/$line_old/$line_new/' data.$$ > tmp.$$ mv tmp.$$ data.$$ Regards (5 Replies)
Discussion started by: baanprog
5 Replies
Login or Register to Ask a Question