Not replacing using sed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Not replacing using sed
# 8  
Old 05-09-2015
Quick and dirty
Code:
xargs <files/chang1.txt sed -i 's/apple/orange/'

xargs reads stdin and turns each line into an argument for the command.

Last edited by MadeInGermany; 05-09-2015 at 09:38 PM..
# 9  
Old 05-09-2015
I think the below will work well, if you not like to replace the files on the same directory

Code:
 while `read line`
do
     sed 's/apple/orange/g'  $line > <NewPath>/$line
done < changes.txt

the above can place the modified file in the newpath and the files in original files doesn't get override. since you are modifying 1000 files, if anything goes wrong you have a backup..

Let me know if this works for you...
Moderator's Comments:
Mod Comment Please use CODE tags (not ICODE tags) for multi-line sample input, output, and code segments.

Last edited by Don Cragun; 05-10-2015 at 12:44 AM.. Reason: Change ICODE tags to CODE tags again.
# 10  
Old 05-10-2015
Quote:
Originally Posted by Selva_2507
I think the below will work well, if you not like to replace the files on the same directory

Code:
 while `read line`
do
     sed 's/apple/orange/g'  $line > <NewPath>/$line
done < changes.txt

the above can place the modified file in the newpath and the files in original files doesn't get override. since you are modifying 1000 files, if anything goes wrong you have a backup..

Let me know if this works for you...
Moderator's Comments:
Mod Comment Please use CODE tags (not ICODE tags) for multi-line sample input, output, and code segments.
No. The above code will not work with any shell. Command substitution occurs in a subshell execution environment. Variables set in a subshell execution environment (by read line in this case) cannot affect the parent shell execution environment. So, assuming changes.txt is an existing, non-empty, text file, the 1st time through your loop will run the command:
Code:
     sed 's/apple/orange/g'  $line > <NewPath>/$line

which, with the expansion of the (unquoted) $line in two places, will expand to the command:
Code:
     sed 's/apple/orange/g'   > <NewPath>/

which will attempt to read the remainder of changes.txt, change all occurrences of apple on those lines to orange, and write the results to the directory named by <newpath>/.. If you aren't running as root, that will fail. If you are running as root (depending on the operating system and filesystem type that contains that director)y, it will either fail with an EBADF, EISDIR, or EPERM error; or it will destroy that directory and make all files that were in that directory inaccessible.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Replacing digits using sed

How to replace a character followed by a digit using sed? For example lets say I have this file - a1 3242134 54235435 3241235 a2 3214345 45325626 3125435 a3 4236577 54365376 6865678 . . . a3000 5432534 32546546 3254365 I want to replace all... (6 Replies)
Discussion started by: saleheen
6 Replies

2. Shell Programming and Scripting

sed not replacing

Data not replacing using sed,please check below. Replace_value=$$dbconn_target Search_value=$$dbcon_source   sed -e s/\${Search_value}/\${Replace_value}/g intrepid_sps_val.parm (2 Replies)
Discussion started by: katakamvivek
2 Replies

3. Shell Programming and Scripting

Replacing using sed

hi Guys, I have a rar file which consists of 10 files. each file has a space in its file name. how can i replace all spaces with _ i can replace them using sed but the thing is i need to replace using a script and not command. can anyone help me out??:confused: (2 Replies)
Discussion started by: rajeshb6
2 Replies

4. Shell Programming and Scripting

replacing by sed

hi my input file has got >,,,, or >, or >,,,,,, there are independent number of commas after >.... i want the o/p as > only that is just to remove "," after">" another is: i want to replace the last line of the file and to replace it by "hello"...how to do?... any nice script plz help (2 Replies)
Discussion started by: Indra2011
2 Replies

5. Shell Programming and Scripting

Need help with SED for replacing an IP

I need some advice to replace 10.183.x.x with 10.174.17.55 in a file containing multiple 10.183.x.x. Any help would be highly appreciated. (1 Reply)
Discussion started by: sags007_99
1 Replies

6. Shell Programming and Scripting

sed inside sed for replacing string

My need is : Want to change docBase="/something/something/something" to docBase="/only/this/path/for/all/files" I have some (about 250 files)xml files. In FileOne it contains <Context path="/PPP" displayName="PPP" docBase="/home/me/documents" reloadable="true" crossContext="true">... (1 Reply)
Discussion started by: linuxadmin
1 Replies

7. Shell Programming and Scripting

replacing ' with '' using sed

Hi, I have a text file and I would like to replace all occurrences of single quote ' with two consecutive single quotes '' . I have tried sed s/\'/\'\'/ < Folder/outputFile.txt > Folder/otherFile.txt but this replaces only the first occurrence of ' with ''. I want it to replace all the single... (7 Replies)
Discussion started by: DushyantG
7 Replies

8. Shell Programming and Scripting

SED: replacing

Hello, I was looking around, but could not find the answer, so I hope you ppl can help me. I want simply to replace text.:rolleyes: I found out SED would be good for this task.:b: So I tried: :confused: 1.) find text in a line and replace this particular line: for finding... (3 Replies)
Discussion started by: unknown7
3 Replies

9. Shell Programming and Scripting

replacing using sed

its again sed question. i have line - sed "s/$old/$new/g" "$f" > $TFILE && mv $TFILE "$f" working well if old="myoldfile" new="mynewfile" but if i want old="/home/shailesh/1test/" new="/home/shailesh/workspace/" it gives error like sed: -e expression #1, char 9: unknown option to... (2 Replies)
Discussion started by: shailesh_arya
2 Replies

10. Shell Programming and Scripting

Replacing in SED

I want to change the false in Node 1 to true. How do I do that? <Node1> <Usage>false</Usage> <Url>ABC</Url> </Node1> <Node2> <Usage>false</Usage> <Url>DEF<Url> </Node2> (8 Replies)
Discussion started by: superprogrammer
8 Replies
Login or Register to Ask a Question