SSR: Simple Search & Replace
HOWTO search and replace from command line
Background
I was to search and replace inside a simple batch-script and wanted a search and replace tool from the command line.
After searching I didn't find what I was looking for and compiled this simple tool.
ssr.exe (Win32-Command-Line-Tool)
Example
ssr c:\\temp\\= \\=\t test.txt
- Deletes the string c:\temp\ and replaces \ (backslash) with TAB
 ssr "ServerHost=Value1"="ServerHost=Value2" config_file.ini
- Use above command to replace values in a config file
 ssr -0 \x01=\x20 test.txt >test_space.txt
- Replace hex 00 with spaces in a textfile (-0 or --zero)
 ssr -m="....[05]00 {8}....[05]00.*" -h=X,Y,Z \s08=, \s07=, grid.txt -o=grid_500m.csv
- Use above command to reduce huge coordinate grid file (grid in 100m) to grid in 500m CC.
Grid line format: 
 1234567        1234567       123.45
 ssr search.txt=replace.txt test.txt
- Replaces the content of search.txt with the content of replace.txt in test.txt (if search.txt and replace.txt exists)
 ssr -l -r "\s*([^ ])\s*\e\s*([^ ]*)\s*"="$1\e$2" test.txt
- Removes whitespace around Name = Value pairs in test.txt
 
Download / Install
 get SSR   ssr.zip a 32-bit windows-command-line-application
- Extract the ssr.exe (1 file) place it whereever (preferable in path) and run (from command line)...
 - Install ssr with chocolatey package manager:
    choco install ssr -s http://chocolatey.commercior.com/chocolatey
 - Update ssr with:
    choco upgrade ssr -s http://chocolatey.commercior.com/chocolatey
 
Parameters
some more parameters (compared to ssr --help) is documented here
(all parameters can be prefixed with - or -- or /)
Flags / Switches
-c or -case-sensitive
- default all searches is not case sensitive
 -l or -line-by-line
- use a line by line approch instead of loading content into memory. somewhat slower but allows for huge input.
 -r or -regexp
- use a simple regular expression engine for search=replace
 -w or -write
- overwrite input file
 -uf or -use-file
- fetch search,replace,prefix,suffix,header,footer from file (if exist) instead of command line as search.txt=replace.txt (must be placed before a search=replace pair) and can be turned on and off
    -uf search.txt=replace.txt -uf -prefix=no-file-tested.txt -uf -suffix=file-content-tested.txt
 -rd or -remove-duplicates
- remove duplicate lines from input (before search=replace) - content is sorted (-sort flag is turned on)
 -sort or -sorted
- content rows is sorted (before search=replace)
 -ff or -fastfind
- only search (no replace) and exit with ERRORLEVEL 2 if found and ERRORLEVEL 1 if not
 -unix or -unixformat
- default CRLF(#13#10) is used as line endings - with this flag use LF(#10)
 -h2t or -html2text or -htm2txt
- simple html to text extraction/conversion
 -quote or -quotes or -qoute or -qoutes
- add prefix " and suffix " for each line
 -ssi
- "server-side-includes" expands <!--#include virtual|file="head.inc" --> and <!-- include: head.inc --> content
 -mysql or -mariadb
- escape some chars - "=\", CRLF=\n, CR=\n, LF=\n, TAB=\t
 -json
- try to extract json structures {..} [..] from content - escape ", remove tab and newline
 -jsonarray
- add comma between rows - for example if you have output {..} json structures into rows
 -latin1 or -utf8-latin1
- convert utf8 content to latin1 (conversion after search/replace)
 -dos or -latin1-dos
- convert latin1 content to an old dos codepage (conversion after search/replace) both -latin1 and -dos is possible
 
name=value
-o=filename or -output=filename
- send output to file instead of standard output
 -n=num or -number-of-lines=num
- return first number of lines num is a number greater than 0 (turns on line-by-line)
 -m=regexp or -match=regexp
- only return rows matching regexp (turns on line-by-line) 
 -k=num or -occurrance=num
- only replace first num matches (not together with line-by-line)
 -h=header or -header=header
- a header is prepended to the output - use -uf -header=header.txt to supply content from file (add after search/replace)
 -f=footer or -footer=footer
- a footer is appended to the output - use -uf -footer=footer.txt to supply content from file (add after search/replace)
 -p=prefix or -prefix=prefix
- a prefix to all rows - use -uf -prefix=prefix.txt to supply content from file (add after search/replace)
 -s=suffix or -suffix=suffix
- a suffix to all rows - use -uf -suffix=suffix.txt to supply content from file (add after search/replace)
 
Versions / History
- 2025-jun-12, version 1.38
 - -fixed some inconsistent params and documented params above
 
- 2025-jun-10, version 1.37
 - -sort and remove-duplicates fix
 - 2022-jan-24, version 1.32
 - -latin1 flag: convert utf8 to latin1
 - 2020-sep-04, version 1.3
 - -filter flag: return only rows matching filter string
 - 2019-dec-16, version 1.28
 - new --mysql flag: escape ", tab and newline
 - 2018-okt-12, version 1.24
 - new -uf (--use-file) flag, previous version always tried to find a file with content of search or replace
 - 2017-dec-30, version 1.23
 - documented -rd and -sort flag
 - 2017-dec-05, version 1.22
 - -k flag didn't work correct and description was updated
 - 2017-feb-20, version 1.20
 - if search (or replace) is a filname, that content is not escaped by \t etc.
 - 2016-jun-30, version 1.19
 - fix to use $search$replace$ pairs for shells that do not like the equal sign
 - 2014-nov-01, version 1.17
 - small bug-fix
 - 2013-sep-03, version 1.15
 - support for \q as " (quote)
 - 2013-maj-31, version 1.13
 - added support to replace hex00 in textfiles
 - 2013, version 1.11
 - Some buggfixes published
 - 2010-mar-05, version 1.6
 - Support for regular expresion substitutions
 - 2010-feb-22, version 1.5
 - Support for large search and replace statements
 - 2009-nov-05, version 1.4
 - Buggfix, parsing correct filename from commandline
 - 2009-oct-21, version 1.3
 - Line-By-Line function for huge files.
 - 2009-aug-03, version 1.0
 - Implemented
 
Published
This tool is published in the softpedia catalogue: 
softpedia.com/get/System/File-Management/SSR-Simple-Search-Replace.shtml
More info
More info/questions from:
 Subject: SSR
Keywords: ssr,search,replace,simple,tool,command,line,cmdline,windows,text,textfile