skip to navigation
skip to content

reprec 2017.25.0

reprec: Recursively replace strings in files and other goodies

reprec: Recursively replace strings in files and other goodies

Command line tool for text files.


Up to now there are these tools:

  • reprec: Replace strings in text files. Can work recursive in a directory tree
  • setops: Set operations (union, intersection, …) for line based files.


The tool reprec replaces strings in text files:

===> reprec --help
Usage: reprec
         [-p|--pattern] p
         [-i|--insert] i
         [-f|--filename regex]
         [--files-from file|-]
         [--ignore regex]


    dirs:        Directories or files for replacing. Use is '.' for current dir.

    pattern:     Regex pattern.

    insert:      Text which gets inserted

    filename:    Regex matching the filename. E.g. '.*\.py'

    no-regex:    Normal string replacement will be used.
                 This means you can use '.', '*', '[' without quoting

    verbose:     Print the number of changes for each file

    print-lines: Print the old and the new line for each change.
                 Not available if --dotall is used.

    dotall:      In regular expressions '.' matches newlines, too.
                 Not supported with --ask and --print-lines.

    ignorecase:  ...

    novcexclude: Don't exclude the directories called '.svn' or 'CVS'.
                 By default they get ignored.

    ask:         Aks before replacing (interactive).

    files-from:  Read filenames from file or stdin if '-'.
                 Skip directories.

    ignore:      Ignore lines that match a regular expression.
                 This options can be given several times.

     reprec --pattern '(xml)' --insert '\1\1' .
     -->This will replace all 'xml' with 'xmlxml'

     Or, shorter:
     reprec '(xml)' '\1\1'

     find -mtime -1 -name '*.py' | reprec --files-from=- foo bar

    The Perl Compatible Regular Expresssions are explained here:

    The files are created by moving (os.rename()) FILE_RANDOMINTEGER
    to FILE. This way no half written files will be left, if the
    process gets killed. If the process gets killed one FILE_RANDOMINTEGER
    may be left in the filesystem.


The tool setops provides set operations (union, intersection, …) for line based files:

usage: setops [-h] set1 operator set2

  union Aliases: | + or
  intersection Aliases: & and
  difference Aliases: - minus
  symmetric_difference Aliases: ^

Example 1: Show all files in directory "a" which are not in directory "b":
setops <(cd a; find ) - <(cd b; find )

Example 2: Show file which do not containt "foo"
setops <(ls -1 mydir/*.txt) - <(grep -l mydir/*.txt)

positional arguments:

optional arguments:
  -h, --help  show this help message and exit
File Type Py Version Uploaded on Size
reprec-2017.25.0.tar.gz (md5) Source 2018-01-12 7KB