Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
rpl(1)			    General Commands Manual			rpl(1)

       rpl (RePLace) - replace strings in multiple files


       rpl [-iwRspfdtx [-q|-v]]	<old_str> <new_str> <target_file(s)>

       rpl  replaces  old_str with new_str in all target files.	It returns the
       number of strings replaced or a system error code (non-zero)  if	 there
       is an error.

       Note  that you should put strings in single quotes if they contain spa-
       ces. You	must also escape all shell meta-characters. It's a  good  idea
       to put ALL strings in single quotes.

       rpl  will  attempt to maintain the owner, group and permissions of your
       original	files. For safety, rpl creates	a  temporary  file  and	 makes
       changes	to that	file. It then moves the	temporary file over the	origi-
       nal file.  rpl sets the owner, group, and permissions of	the  new  file
       to  match  those	 of the	original file.	In some	circumstances rpl will
       not be able to do this (such as when a file is owned by	the  superuser
       but you have group write	permission).  In these cases rpl will warn you
       that the	owner/group or permissions cannot be set and that file will be
       skipped,	 unless	 you  use  the force (-f) option. Note that the	use of
       temp files in predictable, world-writeable locations could lead to sym-
       link  attacks.  Ideally you should set the $TMPDIR environment variable
       to a private directory readable and writeable only by you. This is  es-
       pecially	important if running rpl as root. You have been	warned!

       Normally,  rpl  will  change the	modification time of all files it pro-
       cesses like any other program. However, you may instruct	 rpl  to  keep
       the  original  modification  times using	the -d (Don't alter mod-times)

       You can specify file suffixes to	be searched using the -x  option.  Any
       files  that do not match	the specified suffixes will not	be searched or
       modified. The -x	option may be used more	 than  once  to	 tell  rpl  to
       search  files  with  varying  suffixes. For instance, say you wanted to
       search all of your ".html", ".htm", and ".php" files you	would add

       " -x'.html' -x'.htm' -x'.php' "

       to your command line.  rpl would	then skip any files that did  not  end
       with these suffixes. This is mainly useful when doing recursive search-
       ing (-R option).

       -i     Ignore case of old_str
	      rpl will match the old_str in the	searched  file	regardless  of
	      the case.	The case of new_str will not be	altered.

       -w     Whole words (old_str bounded by white space in file)
	      rpl  will	 only match old_str if it is bounded by	the start of a
	      line, a space, a tab, or the end of a line.

       -q     Quiet mode (no output at all)
	      Good for shell scripts, etc.

       -v     Verbose mode (lots of output)
	      rpl will list the	name of	each file and directory, and the  line
	      numbers that contain matches.

       -R     Search directories recursively
	      rpl  will	scan every file	and every directory recursively. With-
	      out this option directories will be skipped.

       -x     Specify file suffixes to search. (e.g. ".html", ".c", etc.)  May
	      be used multiple times. See above	for details.

       -p     Prompt for each file
	      rpl  will	 prompt	 you before scanning each file.	If you respond
	      'N' or 'n' rpl will skip that file and move on to	the next file.
	      The default action if you	press enter is to process the file.

       -s     Simulation mode
	      rpl  will	scan all of the	files and list the names of files that
	      it would modify if a replace operation was executed. If you turn
	      on  the  verbose (-v) option as well rpl will list the line num-
	      bers where the string is matched.

       -e     Honor Escapes
	      rpl will honor escape sequences in  old_string  and  new_string.
	      Standard	escapes	such as	"\t" (tab), "\n" (newline), "\r" (car-
	      riage return) are	processed, as well as any octal	or hexidecimal
	      ASCII  codes.  Octal  ASCII  codes start with a '\' and are com-
	      prised of	three digits [0-7] (e.g.  '\015').  Hexidecimal	 ASCII
	      codes  start  with  '\0x'	followed by two	characters [0-f] (e.g.
	      '\0x0d').	The 'x'	and the	[a-f] may be upper or lowercase.  When
	      you  use this switch you must escape all backslash ('\') charac-
	      ters with	another	backslash (e.g.	'\\').

       -f     Force mode
	      rpl will overwrite files even if the owner,  group,  or  permis-
	      sions  of	 the  new file will not	match the original. Obviously,
	      rpl cannot overwrite files if the	user does not have write  per-

       -d     Don't change modification	times
	      rpl  will	 process  files,  but keep their original modification

       -t     Use $TMPDIR for temporary	files
	      Causes rpl to write temporary files to the  directory  specified
	      by  the environment variable $TMPDIR instead of writing the temp
	      files to the original file dir. (See note	 above	about  symlink
	      attacks and temp files.)

       -L     Display the software license
	      This  displays  the  software license that you agree to by using

       -h     Display a	brief summary of options

       Report bugs to

       Grep pattern matching.

       An option to backup the original	file.

       If you would like to see	this or	 other	enhancements  send  e-mail  to

       Original	code:
	      Joe Laffey <>

       Other contributors include:
	      Devrim Erdem <>
	      Many thanks to the beta testers who sent in valuable feedback!

LAFFEY Computer	Imaging		 July 22, 2002				rpl(1)


Want to link to this manual page? Use this URL:

home | help