|
|
|
MUNGE.exe (Resource Kit)
Find and Replace text within file(s) Notice that munge looks for a complete string (delimited with spaces) - it won't match part of a string.
syntax
MUNGE ScriptFile [options] FilesToMunge...
key
ScriptFile : A text file containing the strings to Find & Replace
FilesToMunge : One or more files to be changed (may use wildcards)
Editing options
-q : Query only - don't actually make changes.
-e : Query only - display entire line for each match
-o : Query only - just display filename once on first match
-k : Case - Case sensitive scriptFile
-r : Recurse into subfolders
-m : Collapse multiple carriage returns into one
-@ : Remove null characters
-n : Neuter - Surround all strings with TEXT()
-L : Literals - Dont process any quoted text (excludes comments)
-l : Literals - Dont process any quoted text (includes comments too)
Display options
-i : Just output summary of files changed at end
-c : If no munge of file, then check for cleanlyness
-v : Verbose - show files being scanned
Destination options
-t : Don't create .bak files
-a : Use ATTRIB -r command for files that are readonly
-s : Use OUT command command for files that are readonly
(OUT is not a standard documented NT command!)
-f : Use -z flag for SLM OUT command
-u undoFileName : Generate an undo MUNGE script file for the changes made
-z : Truncate file after a Ctrl-Z character
Each line in the ScriptFile should take one of the following 3 forms:
oldName newName
"oldString" "newString"
-F .Ext Name. Name.Ext
In the script file -F may be used to restrict the
files processed by MUNGE when FilesToMunge is a wildcard.
-F [Name].[Ext]
When FilesToMunge (on the command line) is a specific
file then this filename will override any -F setting.
When MUNGE is used with a wildcard
to modify multiple files then you must specify -F in the scriptfile.
MUNGE will create a backup file called .BAK, for this reason do not process
files that have a .BAK extension unless you specify -t (dont create backup)
Example:
MUNGE myChanges.ini FileToMunge.txt
Where myChanges.ini contains the following
:::::::::::: -F FileToMunge.txt "Driver32=C:\WINNT\System32\odbc16.dll" "Driver32=C:\WINNT\System32\odbc32.dll" "Driver32=C:\WINNT\System32\jct16.dll" "Driver32=C:\WINNT\System32\jct32.dll" ::::::::::::
Notice that the whole string has to be spelled out even though
only a small part is being changed. When changing a large or complex file this
is considered a good thing.
When writing a .ini script for munge watch out for trailing spaces.
In the onscreen feedback a TOKEN means your script may replace one word
with another, while a LITERAL STRING means your script will replace one "Quoted
String" with "Another Quoted string"
Munge script files can contain multiple string replacements - these will
be applied in one pass only.
In other words if you replace A with B and also replace B with C. Then A will
not be changed into C (unless you run the MUNGE command twice.)
Bug:
Munge will not work reliably for files greater than 2 Mb - specifically if the
string being searched for is not found in the first 2 MB of the file, then it
won't be found at all. If Munge is run twice in the same CMD shell against a
large file then the second attempt will fail with errors. [NT 4.0 + sp 6 + Reskit]
"I understand that change is frightening for people, especially if there's
nothing to go to. It's best to stay where you are. I understand that."
- Princess
Diana
Related Commands:
CHANGE.exe
- Change values in a text file (part of MSIF.exe)
FOR - Conditionally perform a command several times.
FIND - Search for a text string in a file
FINDSTR - Search for strings in files
QGREP - Search file(s) for lines that match a given
pattern.
Equivalent Linux BASH commands:
grep - Search file(s) for lines that match
a given pattern
gawk - Find and Replace text within file(s)
tr - Translate, squeeze, and/or delete characters