Полезное‎ > ‎CMD‎ > ‎

munge

MUNGE.exe (NT4 Resource Kit)

Find and Replace text within file(s)
Munge.exe has been dropped from the Resource Kit in Windows 2000 and above.

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]
   

Munge will only search for a complete string delimited with spaces - it won't match part of a string.

Munge does not support long file names.

Munge does not work reliably for files greater than 2 Mb.

Munge will not read unicode text.

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. 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.


"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:

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 bash command (Linux): gawk - Find and Replace text within file(s)

Comments