Sponsored Content
Top Forums Shell Programming and Scripting Search/Replace in multiple files recursively Post 302897063 by Don Cragun on Thursday 10th of April 2014 05:28:26 PM
Old 04-10-2014
The first part of the command that you said produces your list of files:
Code:
find /home/ -TYPE

should produce a diagnostic similar to:
Code:
find: -TYPE: unknown primary or operator

and some of the rest of your code seems to be going out of its way to make your life difficult. There is no reason to process the files in each directory separately.

If I understand what you're trying to do, something like the following seems to be a simpler approach:
Code:
#!/bin/ksh
IAm=${0##*/}
searchDir="/home"
searchRE='search string'
rep='replace string'
tmpf="/tmp/$IAm.$$"
trap 'rm -f "$tmpf"' EXIT

find "$searchDir" -type f -name '*.ksh' -exec grep -l "$searchRE" {} + |
while read -r file
do	if sed "s|$searchRE|$rep|g" "$file" >  "$tmpf"
	then	cp "$tmpf" "$file"
	fi
done

Note that I used the pipe symbol (|) rather than slash (/) in case your search pattern or replacement strings are manipulating pathnames. You can replace the pipe symbols with any character other than backslash (\) and <newline>. Try to choose a character that you know will never appear in the search and replacement strings.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need to search and replace in multiple files in directory hierarchy

Hello all I need to search and replace in multiple files that are in directory hierarchy Im using the : find . -name "*.dsp" -print | xargs grep -n -o Test.lib" , I like to be able to replace every instance of Test.lib with empty space . how can I write one liner that does this ? (3 Replies)
Discussion started by: umen
3 Replies

2. Shell Programming and Scripting

find and replace a search string recursively in files

Hi , I have a directory structure as dir and subdirectories and files under it and so on.now I need to find the files which contain the search string under every dir and subdir and replace . my search string is like searchstring=/a/b string to be replaced=/a/c/b please help. ... (7 Replies)
Discussion started by: mohanpadamata
7 Replies

3. Shell Programming and Scripting

Complex Search/Replace Multiple Files Script Needed

I have a rather complicated search and replace I need to do among several dozen files and over a hundred occurrences. My site is written in PHP and throughout the old code, you will find things like die("Operation Aborted due to....."); For my new design skins for the site, I need to get... (2 Replies)
Discussion started by: UCCCC
2 Replies

4. Shell Programming and Scripting

sed search and replace recursively

Hi, I tried making a shell script which recursively search in a given directory for all files *.txt and then search and replace some text and after that save each file as $filename.dynamips.txt I would like to get this done with sed. I tried but couldn't get it to work. BTW this is not... (1 Reply)
Discussion started by: 2bone
1 Replies

5. Shell Programming and Scripting

Global search and replace across multiple files

Hi all I'm in need of a command which can replace a specified string with another string - across multiple files within multiple sub-directories (I intend to run it from / ) I've used the following to get a list of the files: find . | xargs grep <string1> But that's as far as I've got.... (7 Replies)
Discussion started by: huskie69
7 Replies

6. Shell Programming and Scripting

String search and replace in multiple files.

Hello. I have five config files in /etc that I want to edit in one click for testing. I would like to make a script like this : #!/bin/bash # a_file="/etc/file_1" src_str="src_string_1" rpl_str="rpl_string_1" calling_sed_or_awk_or_whatelse $a_file search_for_all $src_str replace_with... (4 Replies)
Discussion started by: jcdole
4 Replies

7. Shell Programming and Scripting

perl: search replace in multiple files

When I use special characters the command to replace multiple files with a string pattern does nt work. ---------- Post updated at 12:33 PM ---------- Previous update was at 11:38 AM ---------- This works perl -pi -e 's/100/test/g' * This does nt work perl -pi -e 's... (1 Reply)
Discussion started by: w020637
1 Replies

8. Shell Programming and Scripting

Search & Replace: Multiple Strings / Multiple Files

I have a list of files all over a file system e.g. /home/1/foo/bar.x /www/sites/moose/foo.txtI'm looking for strings in these files and want to replace each occurrence with a replacement string, e.g. if I find: '#@!^\&@ in any of the files I want to replace it with: 655#@11, etc. There... (2 Replies)
Discussion started by: spacegoose
2 Replies

9. Shell Programming and Scripting

Search and Replace in multiple files

Hello, I have hundreds of files in which I need to change email address. Here is what I am trying to do: 1. All text files are in a directory "a" 2. In the text file, I want to replace email address for preparer. All these lines start with {{PreparerEmail and end with }}. The email... (3 Replies)
Discussion started by: cartrider
3 Replies

10. Shell Programming and Scripting

Search & Replace in Multiple Files by reading a input file

I have a environment property file which contains: Input file: value1 = url1 value2 = url2 value3 = url3 and so on. I need to search all *.xml files under directory for value1 and replace it with url1. Same thing I have to do for all values mentioned in input file. I need script in unix bash... (7 Replies)
Discussion started by: Shamkamde
7 Replies
TRANSMISSION-EDIT(1)					    BSD General Commands Manual 				      TRANSMISSION-EDIT(1)

NAME
transmission-edit -- command-line utility to modify .torrent files' announce URLs SYNOPSIS
transmission-edit [-h] [-a url] [-d url] [-r search replace] torrentfile(s) DESCRIPTION
transmission-edit command-line utility to modify .torrent files' announce URLs OPTIONS
-h --help Show a short help page and exit. -a --add URL Add an announce URL to the torrent's announce-list if it's not already in the list -d --delete URL Remove an announce URL from the torrent's announce-list -r --replace search replace Substring search-and-replace inside a torrent's announce URLs. This can be used to change an announce URL when the tracker moves or your passcode changes. EXAMPLES
Update a tracker passcode in all your torrents: $ transmission-edit -r old-passcode new-passcode ~/.config/transmission/torrents/*.torrent AUTHORS
Jordan Lee SEE ALSO
transmission-create(1), transmission-daemon(1), transmission-edit(1), transmission-gtk(1), transmission-qt(1), transmission-remote(1), transmission-show(1) http://www.transmissionbt.com/ BSD
June 9, 2010 BSD
All times are GMT -4. The time now is 08:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy