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

  
 
  

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

NAME
     sd

SYNOPSIS
     sd [-p|--preview] [-F|--fixed-strings] [-n|--max-replacements] [-f|--flags]
     [-A|--across] [-h|--help] [-V|--version] <FIND> <REPLACE_WITH> [FILES]

DESCRIPTION
OPTIONS
     -p, --preview
	    Display  changes  in a human reviewable format (the specifics of the
	    format are likely to change in the future)

     -F, --fixed-strings
	    Treat FIND and REPLACE_WITH args as literal strings

     -n, --max-replacements=LIMIT [default: 0]
	    Limit the number of replacements that can occur per  file.	0  indi-
	    cates unlimited replacements

     -f, --flags=FLAGS
	    Regex flags. May be combined (like `-f mc`).

	    c - case-sensitive

	    e - disable multi-line matching

	    i - case-insensitive

	    m - multi-line matching

	    s - make `.` match newlines

	    w - match full words only

     -A, --across
	    Process  each input as a whole rather than line by line. This allows
	    patterns to match across line boundaries but uses  more  memory  and
	    prevents streaming

     -h, --help
	    Print help (see a summary with '-h')

     -V, --version
	    Print version

     <FIND>
	    The regexp or string (if using `-F`) to search for

     <REPLACE_WITH>
	    What  to replace each match with. Unless in string mode, you may use
	    captured values like $1, $2, etc

     [FILES]
	    The path to file(s). This is optional - sd can also read from STDIN.

	    Note: sd modifies files in-place by default. See  documentation  for
	    examples.

EXIT STATUS
     0	    Successful program execution.

     1	    Unsuccessful program execution.

     101    The program panicked.

EXAMPLES
     String-literal mode
	    $ echo 'lots((([]))) of special chars' | sd -F '((([])))' ''
	    lots of special chars

     Regex use. Let's trim some trailing whitespace
	    $ echo 'lorem ipsum 23   ' | sd '\s+$' ''
	    lorem ipsum 23

     Indexed capture groups
	    $  echo  'cargo +nightly watch' | sd '(\w+)\s+\+(\w+)\s+(\w+)' 'cmd:
	    $1, channel: $2, subcmd: $3'
	    cmd: cargo, channel: nightly, subcmd: watch

     Find & replace in file
	    $ sd 'window.fetch' 'fetch' http.js

     Find & replace from STDIN an emit to STDOUT
	    $ sd 'window.fetch' 'fetch' < http.js

				    sd 1.0.0				   sd(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sd&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help