Man page - sd(1)

Packages contains this manual

    Package:  sd
    apt-get install sd
    Manuals in package:
    Documentations in package:

Manual

sd

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXIT STATUS
EXAMPLES

NAME

sd

SYNOPSIS

sd [ -p | --preview ] [ -F | --fixed-strings ] [ -n | --max-replacements ] [ -f | --flags ] [ -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 indicates 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

-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 -s '((([])))'
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'
123 dollars and 45 cents

Find & replace in file

$ sd 'window.fetch' 'fetch' http.js

Find & replace from STDIN an emit to STDOUT

$ sd 'window.fetch' 'fetch' < http.js